Draft10cpi, Draft15cpi, etc de Epson en Windows7

2,754 views
Skip to first unread message

Josepe

unread,
Aug 27, 2012, 5:59:25 PM8/27/12
to publice...@googlegroups.com
He preguntado a Epson y dicen que no hay drivers para Win7, que deben usarse los drivers genéricos por actualización que tiene Windows.
Los drivers recientes que vienen con impresores nuevos matriciales Epson también así lo dicen en el manual.
Por tanto no hay disponibles la familia Draft para ese Windows. Por ahora lo he solventado quitando el Win7 y poniendo el Vista, en donde sí trabajan los drivers Epson, pero a la larga esa salida no es viable por el tiempo que lleva cambiar el Windows.
¿Alguien ha podido solventar eso?

edgar suarez kummers

unread,
Aug 27, 2012, 6:09:50 PM8/27/12
to publice...@googlegroups.com
Microsoft no es la excepción de envejecimiento como Empresa.
Se comporta en forma similar a la producción de un pozo petrolero, en este momento dicha empresa está en etapa de decaimiento y así seguirá hasta que salga una nueva que la sepulte definitivamente. 


--
 
 
 



--

edgar suarez kummers

Luis Mata

unread,
Aug 27, 2012, 6:13:33 PM8/27/12
to publice...@googlegroups.com
Aquí no esta fallando MS sino Epson.. Esa empresa ya me ha traído problemas, al parecer se han dormido en sus laureles, sus matriciales no están siendo actualizados a entrada USB, y los driver de alguno solo hay hasta XP.. es un lio.
Lo mas triste es que no tiene competencia en el  mercado, Bixolon, Bematech.. son malos. Triste para nosotros, debería ser una oportunidad para ellos.
--
 
 
 

Josepe

unread,
Aug 27, 2012, 6:41:00 PM8/27/12
to publice...@googlegroups.com
En algún momento Brother y Okidata pudieron  .. "pudieron"  en tiempo pasado.

Edgar Acevedo

unread,
Aug 28, 2012, 1:51:36 AM8/28/12
to publice...@googlegroups.com
Josepe:

Yo uso EPSON FX-890 y EPSON LX-300 pero las he declarado como  "Generic/Text Only".  Estos drivers "genéricos" vienen dentro del listado normal de impresoras de Windows 7.  Mediante secuencias de escape (ESC /2) yo les mando comandos para que activen los pica de 10, 12 y 15 CPI.  También uso el Double-Wide, Enhanced, Italics y Underlined sin ningún problema.

Eso sí no intento usar ningún driver provisto por EPSON.  Solo las uso como "Genéricas", según te indiqué mas arriba.  Tampoco mando a imprimir directamente desde mis aplicaciones de VFP ya que entonces las "letras y números" que mande, Windows los interceptará y tratará de "dibujarlos", en vez de utilizar el set de caracteres grabado en el ROM que trae la impresora (los tipos Draft, Roman y Sans-Serif). 
Entonces para que la impresión sea "textual" y no "gráfica", en una impresora matricial, mando a un archivo plano (tipo texto o tipo SDF, como prefieras llamarlo) y luego desde mi aplicación mando un comando de DOS como este:

TYPE  IMPRESION.TXT  >PRN

De esta manera, la impresora utiliza los caracteres grabados en su memoria ROM en lugar de "dibujar" los caracteres mediante los drivers de Windows.

Así tengo una aplicación corriendo en una cadena de tiendas con estaciones utilizando Windows 7, impresoras matriciales EPSON (LX-300 y FX-890) conectadas con puertos paralelos.  Esta aplicación viene funcionando desde los tiempos de Windows 98 y con esta configuración que te indico arriba, ha impreso desde Windows 2000, XP y Seven.

Salu2,



Edgar Acevedo.




--
 
 
 

FidelJ

unread,
Aug 28, 2012, 10:11:27 AM8/28/12
to publice...@googlegroups.com
Siguiendo la idea de Edgar, en Visual Fox Pro se pueden utilizar aún SET DEVICE TO PRINTER con @ nFila,nCol Say "Cadena", con lo cual no es necesario recurrir al DOS. Puedes imprimir directamente. No se utiliza el driver de la impresora, sino que se envían secuencias de Escape.

Para no lidiar con las secuencias de escape, escribí una rutina basada en variables públicas.
Esto se podría mejorar bastante. Pero como hablamos de una especie en extinción, en mi caso, volví a escribir (adaptado) un código que utilizaba en Clipper 5.01.
Las secuencias de escape son básicamente iguales para las Fx 870, 880, 890 y LX-300
Al inicio del programa, llamo a DefinirTxt(). 

Luego, para imprimir, transcribo una idea básica sobre el manejo.
1) Procedure para habilitar la impresora
2) Procedure para cerrar la impresión
3) Procedure (s) de impresión. (Con una matriz de datos, se puede escribir una sola función que imprima lo que sea)
Las variantes de impresión son básicamente dos: avance por línea y avance proporcional.
En la mayoría de los casos, utilizamos avance por línea, pero en el caso de formulas de cheques, es necesario recurrir al avance proporcional, ya que no se ajustan a ningún conteo de líneas. Recordemos que la impresora trabaja en pulgadas, mientras que los cheques están definidos en milímetros.

* Supuestos
lcValor="Cadena de Texto a imprimir"
ncolumna=1
lnValor=128236.42 && número cualquiera
lnMaxLin=72
* Avance por Línea
if ! Zimpre(72,INDOCE,,.F.)
return
endif

  lin=0
do while .t.
if Lin=0
                       Ejec
Lin=lin+1
&& Imprime Encabezado
endif
  lin=lin+1
  @ lin,ncolumna SAY CPCONVERT(1252,437,Lcvalor)
@ lin,nColumna+60 say transform(lnValor,"999,999,999.99")
lin=lin+1
if lin>lnMaxLin
lin=0
endif
&& Condición de Exit
skip 
if eof()
exit
endif
enddo
PANTALLA(.T.)
*********************************************
* Avance Proporcional
* Utilizado para imprimir cheques, por ejemplo
***********************************************
if !Zimpre(0,OFCOMP)
RETURN
ENDIF
nAvan=9
cAvan=Chr(27)+chr(Ava180)+Chr(Int(nAvan*Relavan/216))
* para epson puede ser directamente
* cAvan=Chr(27)+chr(Ava180)+Chr(nAvan)
??? cAvan
@ Prow(),nColumna SAY CPCONVERT(1252,437,Lcvalor)

PANTALLA(.F.)
ENDPROC



**************************************
Function Zimpre(nLarPage,CHA,lcImpresor,Supcomp)
**********************************************
* Convocatoria de impresoras de matriz de puntos
* cha es el valor de INDOCE,INCOMP etc.
* Formatos de SEcuencia de escape Impresoras de texto Only.
********************************
IF Vartype(nLarPage)#"N"
LLP=PAGNN+CHR(72)
ENDIF
LLP=iif(nLarPage=0,"",PAGNN+CHR(nLarPage)

if Empty(lcImpresor)
lcImpresor=GetPrinter()
endif
if empty(lcImpresor)
return
endif
IF !SUPCOMP
??? DPMODE+LLP+DRAF+OFCOMP+CHA
ELSE
??? DPMODE+LLP+DRAF+OFCOMP+CHA+INCOMP
ENDIF

SET CONSOLE OFF
SET PRINTER TO NAME (lcImpresor)
SET DEVICE TO PRINTER
@ PROW(),0 SAY " "
ENDPROC

*************************
PROCEDURE PANTALLA(lEjec)
*************************
* Cierra la impresora de TExto
@ prow(),1 say " "

??? OFCOMP+OFDOCE+draf+comun
SET PRINTER OFF
if lEjec
EJECT
ENDIF
SET DEVICE TO SCREEN
SET PRINTER TO
SET CONSOLE ON
ENDPROC



**********************
Procedure DefinirTxt()
**********************
* Método de control de impresión de texto formateado
* en impresoras de agujas.

PUBLIC limpre,DPMODE,INCOMP,OFCOMP,INDOCE,OFDOCE,;
CHICO,GRANDE,;
PAG24,PAG36,PAG48,PAG72,PAGNN,;
DRAF,QUALY,DOBLE_WID,ENFASIS,COMUN,DOCECPI,;
ON_DSTRIK,OF_DSTRIK,AVA180,RELAVAN
PUBLIC ryal,rymc,rymm,rydc,ryml

dimension gaprint[14,2]
gaPrint[1,1]=[Número de secuencia de Escape]
gaPrint[2,1]=[Carácter de modo (DP/WP/etc.)]
gaPrint[3,1]=[En caracteres comprimidos]
gaPrint[4,1]=[Quita caracteres comprimidos]
gaPrint[5,1]=[En caracteres 12/15 cpi]
gaPrint[6,1]=[Quita caracteres 12/15 cpi]
gaPrint[7,1]=[En espaciado normal]
gaPrint[8,1]=[En medio espacio]
gaPrint[9,1]=[Carácter de control de líneas]
gaPrint[10,1]=[Control de estilo]
gaPrint[11,1]=[En doble golpe]
gaPrint[12,1]=[Golpe single]
gaPrint[13,1]=[Avance n/180]
gaPrint[14,1]=[Relación Avance Estándar (216)]

gaPrint[1,2]=27
gaPrint[2,2]=64
gaPrint[3,2]=15
gaPrint[4,2]=18
gaPrint[5,2]=77
gaPrint[6,2]=80
gaPrint[7,2]=50
gaPrint[8,2]=48
gaPrint[9,2]=67
gaPrint[10,2]=120
gaPrint[11,2]=71
gaPrint[12,2]=72
gaPrint[13,2]=74
gaPrint[14,2]=216




ryal=Chr(175) && raya alta
rymc=Chr(150) && raya media Central
ryml=Chr(151) && raya media larga
rymm=Chr(173) && raya media media
rydc=Chr(61) && raya doble

dimension gaprin[14,2]
gaPrint[1,1]=[Número de secuencia de Escape]
gaPrint[2,1]=[Carácter de modo (DP/WP/etc.)]
gaPrint[3,1]=[En caracteres comprimidos]
gaPrint[4,1]=[Quita caracteres comprimidos]
gaPrint[5,1]=[En caracteres 12/15 cpi]
gaPrint[6,1]=[Quita caracteres 12/15 cpi]
gaPrint[7,1]=[En espaciado normal]
gaPrint[8,1]=[En medio espacio]
gaPrint[9,1]=[Carácter de control de líneas]
gaPrint[10,1]=[Control de estilo]
gaPrint[11,1]=[En doble golpe]
gaPrint[12,1]=[Golpe single]
gaPrint[13,1]=[Avance n/180]
gaPrint[14,1]=[Relación Avance Estándar (216)]

gaPrint[1,2]=27
gaPrint[2,2]=64
gaPrint[3,2]=15
gaPrint[4,2]=18
gaPrint[5,2]=77
gaPrint[6,2]=80
gaPrint[7,2]=50
gaPrint[8,2]=48
gaPrint[9,2]=67
gaPrint[10,2]=120
gaPrint[11,2]=71
gaPrint[12,2]=72
gaPrint[13,2]=74
gaPrint[14,2]=216

DPMODE=CHR(gaPrint[1,2])+CHR(gaPrint[2,2]) && Data Processing Mode
INCOMP=CHR(gaPrint[1,2])+CHR(gaPrint[3,2]) && Comprimidos
OFCOMP=CHR(gaPrint[4,2]) && Estándar
INDOCE=CHR(gaPrint[1,2])+CHR(gaPrint[5,2]) && 12 cpi
OFDOCE=CHR(gaPrint[1,2])+CHR(gaPrint[6,2]) && 10 cpi
CHICO=CHR(gaPrint[1,2])+CHR(gaPrint[8,2]) && 15 cpi
GRANDE=CHR(gaPrint[1,2])+CHR(gaPrint[7,2]) && expandido
PAG24=CHR(gaPrint[1,2])+CHR(gaPrint[9,2])+CHR(24) && 24 lines per page
PAG36=CHR(gaPrint[1,2])+CHR(gaPrint[9,2])+CHR(36) && 36 lines per page
PAG48=CHR(gaPrint[1,2])+CHR(gaPrint[9,2])+CHR(48) && 48 lines per page
PAG72=CHR(gaPrint[1,2])+CHR(gaPrint[9,2])+CHR(72) && 72 lines per page
PAGNN=CHR(gaPrint[1,2])+CHR(gaPrint[9,2]) && uso pagnn+chr(72) = 72 lines per page

draf =CHR(gaPrint[1,2])+CHR(gaPrint[10,2])+CHR(0) && Modo Draf
QUALY =CHR(gaPrint[1,2])+CHR(gaPrint[10,2])+CHR(1) && Modo Quality
DOBLE_WID =CHR(gaPrint[1,2])+CHR(33)+CHR(32) && Expandido
ENFASIS =CHR(gaPrint[1,2])+CHR(33)+CHR(8) && REmarcado
COMUN =CHR(gaPrint[1,2])+CHR(33)+CHR(0) && Estándar
DOCECPI =CHR(gaPrint[1,2])+CHR(33)+CHR(1)
On_Dstrik =CHR(gaPrint[1,2])+CHR(gaPrint[11,2]) && Doble golpe
oF_Dstrik =chr(gaPrint[1,2])+chr(gaPrint[12,2]) && golpe Simple
Ava180 =gaPrint[13,2] && Avance Proporcional
Relavan =gaPrint[14,2] && Relación de Avance
ENDPROC

Saludos

Edgar Acevedo

unread,
Aug 28, 2012, 10:20:51 AM8/28/12
to publice...@googlegroups.com
¡ Estupendo Fidel !, que bien elaborada tu solución.

Salu2,


Edgar

--
 
 
 

Josepe

unread,
Sep 21, 2012, 11:16:50 AM9/21/12
to publice...@googlegroups.com
Yo tengo muchos repor form, algunos son casi imposible traducir a reporte por comandos, así que necesito el font Darft. Para. Para mientras mejor sigo instalando Windows Vista en equipos nuevos, aunque eso me quite tiempo. Con Windows Vista sí están disponibles los font Draft.

Alfonso Arce Silvestre

unread,
Sep 21, 2012, 4:40:38 PM9/21/12
to publice...@googlegroups.com
Te sugiero utilices los driver´s de Vista en Win7 no debes terne problema alguno

Saludos

ZeRoberto

unread,
Sep 21, 2012, 4:45:52 PM9/21/12
to publice...@googlegroups.com
Hasta win xp hay unos tipos de fuentes draft no se que
 
Que en el diseñador de reportes le puedes asignar a cada campo para que salga con esos tipos de fuentes. Sin tener que usar SET PRINTER TO, ?... o codigos de escape
 
Pero de ahi para adelante ya no salieron
 
Saludos

--
 
 
 

Reply all
Reply to author
Forward
0 new messages