In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Impresión de corte en rollo de papel.

Foro público de Xailer en español
Responder
Diego Ferreira
Mensajes: 148
Registrado: Mar Dic 18, 2007 4:39 pm

Impresión de corte en rollo de papel.

Mensaje por Diego Ferreira »

Yo con una Epson TMU220 le pongo tan solo --->
Printer:nPaperLength := 0
y con esto me imprime infunitas linias sin ningun corte....
espero que te sirva...
"RRamonell" <meridiano75@prodigy.net.mx> escribió en el mensaje
news:[email=49b936de@svctag-j7w3v3j....]49b936de@svctag-j7w3v3j....[/email]
> Hola todos:
>
> Estoy programando la impresión de una tira de información contable. Para
> ello utilizo una miniprinter Star DP8340 de friccion con un rollo de 76 mm
> de ancho.
>
> El problema que tengo es que solo visualiza e imprime una parte de la
> información (47.5 cm) y el resto de la información se pierde. La tira
> completa puede medir mas de un metro, dependiendo de la cantidad de
> información que se genere en el periódo.
>
> Los valores que utilizo para las propiedades del objeto TPrinter son:
>
> LOCAL l := 0
>
> Printer:lPreview := .T.
> Printer:nPrintQuality := DMRES_HIGH
> Printer:nPaperWidth := 760
> Printer:cJobTitle := 'Compobación'
> Printer:StartDoc()
> Printer:oCanvas:nMapMode := mmSIMULCHAR
> Printer:StartPage()
> WITH OBJECT Printer:oCanvas
> :oFont := oFont2
> :nTextAlignment := taLEFT
> FOR k := 1 TO 200
> :TextOut( 3, l += 2, 'Impresión en tira : ' + Str( k, 3) )
> NEXT
> END
> Printer:EndPage()
> Printer:EndDoc()
> Printer:Preview()
> oFont2:Destroy()
>
> Con el código anterior solo visualiza e imprime 77 lineas.
>
> Alguien me puede ayudar diciendome como puedo abrir el tamaño del objeto
> TCanvas ?
>
> Gracias.
>
> Rene Ramon Elly
> meridiano75@prodigy.net.mx
PEDRO DE LEON RODAS[3]
Mensajes: 266
Registrado: Mar Oct 28, 2008 4:41 am

Impresión de corte en rollo de papel.

Mensaje por PEDRO DE LEON RODAS[3] »

RRamonell, te paso la forma en el cual utilzo para imprimir tickets de un
punto de ventas, lo he usado en impresas star SP-212..
Te sugiero que pruebes instalando la star sp212 aun que tengas fisicamente
la Star DP8340.
Pues lo hice con una Star sp-512 y funciono correctamente, claro todo con
windows xp.
Espero te sirva.
oFont := TFont():New()
WITH OBJECT oFont
:cName := "Arial"
END WITH
Printer:lPreview := .F.
Printer:cJobTitle := "IMPRIMIR VENTA"
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmSIMULCHAR
Printer:StartPage()
WITH OBJECT Printer:oCanvas
:oFont:= oFont
:lTransparent := .t.
:nMapMode := mmSIMULCHAR
:oFont:nSize := 8
:oFont:lBold := .f.
:nTextAlignment:=taRight
:TextOut( 0, 1, ALLTRIM(NOMBRE_DE_LA_EMPRESA))
:TextOut( 0, 2, "Venta No.: "+alltrim(Str(::folio_ticket)))
:TextOut( 0, 3, "FECHA: "+DTOC(::Fecha:Value)+" Hora: "+time())
:TextOut( 0, 4, "Socio No. "+Alltrim(Str(::Numero_Socio:Value)))
:TextOut( 0, 5, Substr(::Nombre_Socio:Value,1,42) )
:TextOut( 2, 6, "Cantidad")
:TextOut( 16, 6, "Precio")
:TextOut( 28, 6, "Importe")
:TextOut( 0, 7, REPLICATE("-",40))
Var_linea=8
::Tempo:Select() /// esta es mi tabla donde guardo las partidas de la
venta
::Tempo:Gotop()
Do while .Not. ::Tempo:Eof()
:TextOut( 0, Var_linea, Substr(::Tempo:Descrip,1,42))
Var_linea=Var_linea+1
:TextOut( 0,
Var_linea,Transform(::Tempo:Cantidad,"99,999.999"),0 )
:TextOut( 4,
Var_linea,Transform(::Tempo:Precio,"999,999.99"),18 )
:TextOut( 4,
Var_linea,Transform(::Tempo:Importe,"999,999.99"),31 )
Var_linea=Var_linea+1
::Tempo:Skip()
Enddo
:TextOut( 0, Var_linea,REPLICATE("-",40))
Var_linea=Var_linea+1
:TextOut( 2, Var_linea,"Subtotal=====>")
:TextOut( 2,
Var_linea,Transform(::Subtotal:Value,"999,999.99"),31 )
Var_linea=Var_linea+1
:TextOut( 2, Var_linea,"Venta Total==>")
:TextOut( 2,
Var_linea,Transform(::Total:Value,"999,999.99"),31 )
END WITH
Printer:EndPage()
Printer:EndDoc()
oFont:Destroy()
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Impresión de corte en rollo de papel.

Mensaje por zeasoftware »

Yo lo hice un poco mas complicado por la ausencia de documentacion y gracias
a muchas respuestas del foro.
Al inicio defino como voy a imprimir: (hay varias por que hice un solo
proceso para toda impresion de la aplicacion)
Do Case
Case cSize == "Ticket"
::nPaperSizeType := 2
Case cSize == "MediaCarta"
//Alto:13.97 Ancho:21.59
::nPaperSizeType := 1
OtherWise
::nPaperSizeType := 0
EndCase
Antes del StarDoc()
Do Case
Case ::nPaperSizeType == 2
//Alto:13.97 Ancho:21.59
::nWidth := 1000
::nEndDataRow := 0
:nPaperWidth := ::nWidth //solo para no dejar de usar la
variable, la ocupo en otro lugar :o)
:nPaperLength := 5000
Case ::nPaperSizeType == 1
//Alto:13.97 Ancho:21.59
::nWidth := 2159
:nPaperWidth := ::nWidth
:nPaperLength := 1397
OtherWise
:nPaperSizeType := 0
EndCase
y antes del EndDoc()
If ::nPaperSizeType == 2 .And. ::nEndDataRow == 0
:nPaperWidth := ::nWidth
:nPaperLength := ::nYPos
//:Reset()
End
nYPos lo voy incrementando conforme voy imprimiendo y lanzando saltos de
linea, para lo cual defini un metodo llamado Skip() donde hago los calculos.
al final me queda un recuadro de impresion con lo alto del lago de la
impresion.
Espero te sirva.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
RRamonell
Mensajes: 32
Registrado: Mar May 06, 2008 5:20 pm

Impresión de corte en rollo de papel.

Mensaje por RRamonell »

Muchisimas gracias: Diego Ferreira, Pedro de León Rodas y Ramón Zea por
responder.
Voy a hacer pruebas con sus sugerencias.
Saludos.
Rene Ramon Elly
meridiano75@prodigy.net.mx
Responder