Impresión en tamaños de hoja no convencionales

Estoy trabajando con PB10. Mi problema es con la impresión de facturas. El tamaño requerido de hoja no esta dentro de la lista de PB. Probé de configurar la impresora con un tamaño de hoja personalizado (para luego poner el tamaño de hoja default en PB) pero driver de la misma no me lo permite... ¿Entonces... Que hago? Toy casi desesperada!
Respuesta
1
Te mostrare dos maneras de imprimir en tamaños de hojas no convencionales..
La primera
Por ejemplo.. imprimiremos en una hoja cuyo tamaño sea.. 15 cm. de ancho por 20 de alto..
Lo primero que tienes que hacer es cambiar las unidades de tu datawindows.. para eso tienes que entrar al dw.. propiedades.. general .. UNITS.. ahí ponlo a 1/1000 Centimeter (3)
Luego antes de imprimir tu hoja.. tira este código.. para que cambie el tamaño...
cdw_prueba.Modify("DataWindow.Print.CustomPage.Length = 200")
cdw_prueba.Modify("DataWindow.Print.CustomPage.Width = 150")
Pongo los nros. 200 y 150 esos son los tamaños de mi hoja.. que están en milímetros..
Esa es una forma.. la ultima que descubrí navegando por ahí.. :p
La segunda
Esta mi forma "tradicional" que es la que utilizo para impresoras matriciales..
bueno..
Ten en cuenta que en cada pulgada del tamaño de tu hoja.. van 6 lineas de impresión..
Suponiendo que tu tamaño sea.. 20 cms de alto..
eso lo convertiremos a pulgadas..
seria..
20 cm = 7.87 pulgadas
utilizando la regla 1 cm = 0,3937 pulgadas
Entonces.. tenemos 7.87 pulgadas.. que como te dije antes.. cada pulgada seria.. 6 lineas de impresión..
Tendriamos entonces en total 6 x 7.87 = 47.22 lines de impresion.. segun los calculos parciales que hemos hecho..
Entonces nuestro script seria el siguiente..
integer li_job
li_job = PrintOpen("IMPRESION DE PRUEBA ")
PrintSend(Job, char(27) + char(64))
PrintSend(Job, char(27) + char(67) + char(47.22)) ==> aqui lo colocamos
PrintDataWindow(Job, cdw_prueba)
PrintClose(Job)
Con este ultimo código yo realizo las imprsiones de facturas, cheques, recibos.. y otros formatos en impresora MATRICIAL..
Un millón de gracias por tu dedicación! Saludos desde Argentina!
Cierra y califica la pregunta..
Me alegra que te haya servido..
Hola de vuelta. Desgraciadamente no me funciona. Los saltos de página no me respetan el tamaño de hoja seleccionado. Con ninguna de las dos formas. ¿Tengo qué hacer alguna configuración adicional en la dw (en el caso de la segunda opción que me das)? Perdón por tanta pregunta. Nuevamente gracias
Utilizando cualquiera de las opciones.. coloca como tamaño de hoja en tu datawindow default.. también fíjate que no haya ningún objeto en tu datawindows que supere los margenes..
Creo que algo de eso te puede ayudar.. sino tírame aquí tu código de impresión.. así la analizo..
Suerte..
Hola! Me fije si tengo objetos fuera del área de impresión y que los tamaños de hoja estén en default. El código de impresión es el que me pasaste. Pero no doy con la forma de imprimir. Que significan los char con numeros que me pasaste? ¿Mi alto de hoja es 25.6 cm por lo que reemplace tus 47.22 por 50.98.Podría enviar linea por linea los datos a la impresora y mandarle cuando necesite los retornos de carro y demás comandos? Sigo agradeciéndote infinitamente tu ayuda. Y si te sature de preguntas, solo házmelo saber. Saludos
Siéndote sincero.. nunca tuve ningún problema con estos códigos..
Justamente la primera linea del código
PrintSend(Job, char(27) + char(64))
Es como entiendo el inicio de impresión..
Y la siguiente es donde se limita la cantidad de lineas de impresión para el corte..
dime.. ¿qué modelo de impresora tienes?
Una cosa que debes saber es que el área de impresión que ves en tu vista preliminar puede ser completamente diferente al de tu impresión real..
Es por eso que me gustaría que hagas una prueba.. crea un dw.. y coloca un solo texto en la cabecera y centrado.. tirale el código y fíjate si ahí si te hace el salto correcto..
Si es así.. quiere decir que alguno de tus campos en la impresión inicial ha salido del área de impesion.. y debes DESCUBRIR cual es.
Otra cosa que pudeo suponer es que tu impresora no respete o no reconozca el código.. por lo que yo optaría por la otra opción que te di..
avisame de como te fue..
Mi muy estimado: Mi impresora es una EPSONM ap 2000. En alguna oportunidad tuve estos problemas con el salto de página pero lo solucione desde el reporteador configurando la impresora como de solo texto. No se si esta opción esta en Power Builder. Probé lo que me dijiste y sigo con el problema. De las dos formas. Con archivos .bat también. Agradezco infinitamente tu tiempo y dedicación a mi problema. Hasta luego. Y mucha suerte en lo tuyo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas