Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   QReport, Impresoras matriciales y Windows XP ( o el bueno, el feo y el malo) (https://www.clubdelphi.com/foros/showthread.php?t=17978)

jlmelida 27-01-2005 21:00:20

QReport, Impresoras matriciales y Windows XP ( o el bueno, el feo y el malo)
 
Antes de nada me presentaré. Me llamo Julio y resido en Alicante, (España). Soy nuevo en el foro y hasta ahora, me he dedicado a leer los diversos topics del mismo, sin intervenir. Desafortunadamente, por mi trabajo, apenas tengo tiempo para hacerlo. Pertenezco a la clásica empresa en donde el Jefe piensa que uno aprende las cosas mientras duerme y que durante el día solo hay tiempo para desarrollar.


Hay varios hilos sobre problemas de manejo de las impresoras matriciales con formatos de hoja no standard y windows XP. Ninguno de ellos, termina con una solución clara del problema. Algunos recomiendan imprimir directamente y otros se resignan sin encontrar la solución. Cito algunos del foro de impresión:





Imprimir en matricial carro ancho. MarioATamborini 27/01/2.005.

problemas con impresora matricial en xp. Morfeo 21 16/12/2.004.

Definir mi propio tamaño de hoja para FastReport. Ingel 4/12/2.004.

como cambiar tipo de papel en la impresora ??. Raptor 2/12/2.004

imprimir ticket en win xp y en win 98. Rebollo 75. 9/11/2.004.

Problemas con Win98 y Win2000. Esau. 10/11/2.004.

Tamaños de Impresión. Akkan. 21/07/2.004.

La historia de mi problema al imprimir. Jomabri. 30/06/2.004.

Impresión de recibos en papel continuo. Sur-se. 22-06/2.004.

Impresión y tamaño de papel. Sur-se. 1/06/2.004.

Imprimir. Marianaf. 12/01/2.004.

custom size en QuickReport. Marianaf. 15/12/2.003.

Problemas al imprimir un ticket. Roco 7777. 23/11/2.003.

QuickReport Tamaño Hoja.. Cahosoft. 9/10/2.003.

Problemas con el QuickReport en Windows XP. Ovargas. 2/09/2.003.

Tamaño pagina personalizado, eterna cuestion. Hallenbeck. 23/08/2.003.

QReport+Pagaré+WindowsXP. Producto 77. 7/07/2.003.

Quick Reports vrs papel continuo en una Epson LX -300. Maros. 1/07/2.003.

Tamaño impresion QuickReport. Gabriel A Reyes. 8/05/2.003.




Aunque las normas del foro indican no abrir varios topics referente a lo mismo, lo cierto es que al haber varios de ellos, pienso que si formulaba la solución en alguno particular, otras personas podrían no darse cuenta y he decidido, con el permiso de los moderadores, abrir un nuevo topics con este titulo.



En comunicaciones sucesivas, iremos viendo los puntos necesarios para lograr imprimir en tamaños de papel no standars ( cheques, formularios, facturas, etc) con impresoras matriciales, QReport y windows XP.



Saludos




jlmelida 27-01-2005 21:22:18

Hola de nuevo:



Como se puede imaginar, son tres los culpables de que las cosas no funcionen bien, cuando se trata de imprimir en matriciales: Por una lado Windows XP, por otro la propia impresora y por supuesto Qreport.

Bill Gates y sus asociados, deben pensar que las impresoras matriciales ya son cosa del pasado y no les dan soporte adecuado.:confused:

Pero es mas, los propios fabricantes de matriciales, tampoco estan muy entusiamdos. Un ejemplo: Poseo una Epson LQ 2.080. Voy a la pagina web de Epson para tratar de conseguir un driver actualizado para Windows XP. Resultado: No existe.:confused:

Por último, Qreport, tampoco esta por la labor y hay que modificar los fuentes.:confused:

Sin embargo, la situación en la realidad es bien distinta: La mayoria de negocios, todavía tienen que lidiar con impresos autocopiantes de varias hojas: Nóminas, Seguros Sociales, impresión de facturas, pagos por cheques, etc. etc.

Por muy rápidas que sean ( y con colorines por cierto), son trabajos que no pueden desarrollar ( de momento), ninguna impresora Láser o de chorro de tinta.

En resumen: No es justo arrinconar a las matriciales y no darles soporte como se esta haciendo.

En la próxima intervención, ya entraremos en materia, pero de momento:

VIVAN LAS MATRICIALES.

Saludos.

jlmelida 27-01-2005 21:37:40

Hasta ahora, tenemos identificados a tres culpables. Vamos a empezar con el primero: Windows XP.

Yo utilizo la versión profesional y supongo que será lo mismo con la Home edition, aunque no puedo asegurarlo.

Pichemos en Inicio, luego en Impresoras y Faxes.

Después en Archivo y en Propiedades del Servidor.

En la pestaña Formulario, pulsamos Crear uno nuevo.

Aqui definimos el nuestro. Comenzaremos por darle un nombre que nos sea familar: "Facturas de ventas", "Nómimas", etc.

Para nuestro ejemplo, utilizaremos la palabra "cheque".
Le damos un ancho de 17,5 cm y una longitud de 7,62 cm. ( Esta longitud tan extraña es el resultado de pasar 3 pulgadas que es lo que mide un cheque a cm. ).

Guardamos el formulario y cerramos.

Con este paso, ya hemos conseguido que nuestro sistema operativo, tenga la definición del papel que nos interesa.

jlmelida 27-01-2005 22:03:44

Vamos ahora a crear un driver para nuestra impresora. Como los trabajos que normalmente realizaremos con una matricial son muy simples, instalaremos la impresora "Generico/Solo Texto". Los dibujitos y otras lindezas, se las dejamos a las impresoras de chorro de tintas. Son maravillosas para esos trabajos.

Podemos iniciar el asistente para instalar la impresora. El solo la instalará, utilizando los driver que el propio Windows trae por defecto.

La impresora genérica tiene la ventaja de que admite todos los papeles definidos en el servidor, mientras que si instalamos los especificos de nuestra impresora, es mas que probable que no admita todos los tamaños definidos y mucho menos nuestra definición de cheque.

Si todo ha ido bien, al terminar, tendremos definida nuestra impresora.

Yo aconsejo cambiarle el nombre. Eso de generico, es ( valga la redundancia) muy genérico. Además, seguro que a nuestros clientes les inspira mas confianza si ven un nombre mas explicito.

Por ejemplo, si hemos definido la impresora para hacer cheques, porque no llamarla "Cheques del Banco Pepito".

Si mas adelante, en el momento de imprimir, el programa le da a elegir varias impresoras, no dudará en señalar al Banco Pepito, si lo que quiere es imprimir sus cheques. Hay que ponerse al nivel del cliente y facilitarle la vida ( Cosa que desde luego el no hace, al pedirte el "mas dificil todavía").

Bien, cuando aparezca el icono de nuestra impresora, la remarcamos con el botón derecho del ratón. En la pestaña Presentación, Preferencias de Impresión, Papel/Salida: Ponemos Cheque.

En la pestaña Papel/Calidad:Alimentación Contínua: Sin pausa.

Si ahora remarcamos para que aprezcan las Propiedades, en la pestaña General, sale por defecto A4. Hemos de conseguir que aparezca "Cheque".

Para ello, vamos a la pestaña Configuración de dispositivo: Alimentación contínua: En todo lo que aparezca ponemos cheque. Pulsamos aplicar y así en la pestaña General, en papel disponible deberá aparecer la palabra Cheque.

Una vez definido el driver, deberemos comprobar que funciona. Cargamos Word, selecionamos esa impresora y en el menu de configurar pagina , en tamaño de papel buscamos cheque.

Como prueba, podemos escribir unos 3 o 4 cheques e imprimirlos aunque sea en una hoja A4. El caso es comprobar que el driver funciona perfectamente.

Si esto no sucede, repasar lo expuesto, pero antes de seguir adelante, hay que estar seguros de que la impresora reconoce el papel definido por nosotros.

Hasta ahora, hemos retocado a Windows, definiendo el papel en el Servidor y en la impresora.

Saludos y mañana ya nos meteremos con el tercer culpable.QReport.

jlmelida 28-01-2005 20:40:37

Como lo prometido es deuda, vamos a "destripar" a QReport. La primera pregunta es ¿ y porque QReport ?.


Mi respuesta es: ¿ Y por qué no ?. Hasta la versión 7 de Delphi, Borland ha dado soporte a este generador de informes. Se compenetra muy bien con Delphi ( solo faltaba, esta escrito en Delphi) y puede hacer casi lo mismo que cualquier otro.

He trabajado con Cristal Report y no lo cambio por Qreport. Por lo menos en ambiente Delphi.

Una de los inconvenientes que mas se oye, es que no permite al usuario final diseñar sus informes, pero esto no es cierto... por lo menos en la versión profesional.

Ocurre que ( lo mismo con TeeChart) que la versión ofrecida gratis con Delphi es la versión light. Supongo que será un problema de costos y de no querer encarecer Borland su producto.

Politicas comerciales a parte, si se quiere hacer algo mas serio, yo recomiendo que se adquiera la versión profesional. Trae los fuentes o lo que es lo mismo, nos da la oportunidad de "retocarlo" a nuestro gusto.

De paso, podemos apreciar lo bien que programan los de QSoft. Como profesional, me quito el sombrero ante ellos y les digo "chapeau". Es una delicia leer sus fuentes. Las definiciones de clases, como utilizan la herencia, etc.

Si te gusta la OOP, solo por eso, deberias adquirir la versión profesional.

Las siguientes explicaciones se refieren a la versión Qrepor Pro 3.6.2.

Como siempre, espero que funciones en otras versiones pero no lo puedo asegurar porque no lo he probado.

saludos.

jlmelida 28-01-2005 21:07:07

Para cada papel, Qreport debe terner definido su nombre y sus dimensiones. Por ejemplo: A4 tiene por dimensiones 210 por 297 mm.

Además a cada papel, le asigna un numero o código que es el que le pasa a la impresora, para que esta lo utilice.

En todo este proceso, estamos asumiendo que la impresora reconoce el tamaño de papel que queremos usar.

Por eso, al principio, construimos un driver de impresora genérico y comprobamos, por medio de Word u otro procesador de texto, que funcionaba, esto es, que nuestra impresora reconocía ese tamaño.

El problema esta en que no conocemos de antemano que codigo tiene ese tamaño de papel.

En la pagina web de qsoft www.qusoft.com, puedes ver a la izquierda una columna con el titulo

DIY Fixes.

Pulsando te aparecen una serie de respuestas a problemas.

Localiza "Adding new paper formats".

Prácticamente te explica todo el proceso.

Debes comenzar por bajarte el programa printercheck. Una vez descomprimido, te aparecerá PRDrive.exe.

Esta utilidad, mediante llamadas al API de Windows te indica el codigo del papel que queremos usar.

De paso, puedes leerte los fuentes y aprenderás mucho sobre el manejo de impresoras, etc. Lo recomiendo.

Para el papel que hemos definido, llamado cheque, en mi impresora matricial y con el driver genérico/solo texto, obtuve el código 123.

Naturalmente, este código variará en función de la impresora, driver y tipo de papel.

Con este dato, ya podemos retocar los fuentes.

Saludos.

jlmelida 28-01-2005 21:19:16

No hace falta decir, que antes de retocar ningún fuente, debemos hacer unas buenas copias de seguridad por aquello de la Ley de Murphy.

Abrimos Delphi y cargamos el paquete qrpt70.bpl.

Me estoy refiriendo a la versión de Delphi 7.0 y a Qreport Pro 3.6.2.

Debo suponer, que será igual o muy parecido con otras versiones, pero yo no lo he hecho.

Desde el cuadro package, cargamos qr3const.pas

Al principio de la unidad podemos encontrar:

Código PHP:

resourcestring
  SqrPaperSize0 
'Default size';
  
SqrPaperSize1 'Letter 8 1/2 x 11 in';
  
SqrPaperSize2 'Letter Small 8 1/2 x 11 in';
  
SqrPaperSize3 'Tabloid 11 x 17 in';
  
SqrPaperSize4 'Ledger 17 x 11 in';
  
SqrPaperSize5 'Legal 8 1/2 x 14 in';
  
SqrPaperSize6 'Statement 5 1/2 x 8 1/2 in';
  
SqrPaperSize7 'Executive7 1/2 x 10 in';
  
SqrPaperSize8 'A3 297 x 420 mm';
  
SqrPaperSize9 'A4 210 x 297 mm';
  
SqrPaperSize10 'A4 Small 210 x 297 mm';
  
SqrPaperSize11 'A5 148 x 210 mm';
  
SqrPaperSize12 'B4 250 x 354 mm';
  
SqrPaperSize13 'B5 182 x 257 mm';
  
SqrPaperSize14 'Folio 8 1/2 x 13 in';
  
SqrPaperSize15 'Quarto 215 x 275 mm';
  
SqrPaperSize16 '10x14 in';
  
SqrPaperSize17 '11x17 in';
  
SqrPaperSize18 'Note 8 1/2 x 11 in';
  
SqrPaperSize19 'Envelope #9 3 7/8 x 8 7/8';
  
SqrPaperSize20 'Envelope #10 4 1/8 x 9 1/2';
  
SqrPaperSize21 'Envelope #11 4 1/2 x 10 3/8';
  
SqrPaperSize22 'Envelope #12 4 \276 x 11';
  
SqrPaperSize23 'Envelope #14 4 \276 x 11';
  
SqrPaperSize24 'C size sheet';
  
SqrPaperSize25 'D size sheet';
  
SqrPaperSize26 'E size sheet';
  
SqrPaperSize27 'Custom Size';
  
SqrPaperSize28 'Cheque';     // Esto es lo que añadimos. 

Por supuesto que en la unidad hay muchisimas mas constantes. Si queremos, podemos traducirlas a nuestro idioma, pero lo fundamental es que hemos añadido una nueva etiqueta para nuestro papel.

jlmelida 28-01-2005 21:41:38

Mas complejos son los cambios a realizar en la unidad QRPrntr.pas, pero también secillos.


Código PHP:

type
  
All the known paper sizes }
  
TQRPaperSize = (Default,
                  
Letter,
                  
LetterSmall,
                  
Tabloid,
                  
Ledger,
                  
Legal,
                  
Statement,
                  
Executive,
                  
A3,
                  
A4,
                  
A4Small,
                  
A5,
                  
B4,
                  
B5,
                  
Folio,
                  
Quarto,
                  
qr10X14,
                  
qr11X17,
                  
Note,
                  
Env9,
                  
Env10,
                  
Env11,
                  
Env12,
                  
Env14,
                  
CSheet,
                  
DSheet,
                  
ESheet,
                  
Cheque// Este es el nuevo tipo definido
                  
Custom); 


Posteriormente definimos esta constante:

Código PHP:

const
.
.
dmpaper_cheque 123// Nuestro codigo para nuestro papel 

Ahora definimos las dimensiones:
Código PHP:

 
   cQRPaperSizeMetrics 
: array[Letter..Cheque0..1of extended =
      ((
215.9279.4), { Letter }
       (
215.9279.4), { Letter small }
       (
279.4431.8), { Tabloid }
       (
431.8279.4), { Ledger }
       (
215.9355.6), { Legal }
       (
139.7215.9), { Statement }
       (
190.5254.0), { Executive }
       (
297.0420.0), { A3 }
       (
210.0297.0), { A4 }
       (
210.0297.0), { A4 small }
       (
148.0210.0), { A5 }
       (
250.0354.0), { B4 }
       (
182.0257.0), { B5 }
       (
215.9330.2), { Folio }
       (
215.0275.0), { Quarto }
       (
254.0355.6), { 10X14 }
       (
279.4431.8), { 11X17 }
       (
215.9279.0), { Note }
       (
98.43225.4), { Envelope #9 }
       
(104.8241.3), { Envelope #10 }
       
(114.3263.5), { Envelope #11 }
       
(101.6279.4), { Envelope #12 - might be wrong !! }
       
(127.0292.1), { Envelope #14 }
       
(100.0100.0), { CSheet }
       (
100.0100.0), { DSheet }
       (
100.0100.0), { ESheet }
       (
175.0,  76.2)  { Cheque // Esta es nuestra definición
        
); 

Por último definimos el array para trasladar los tamaños del papel al codigo de la impresora


Código PHP:

   cQRPaperTranslate : array[Default..Customof integer =
       (
0,
       
dmpaper_Letter,
       
dmpaper_LetterSmall,
       
dmpaper_Tabloid,
       
dmpaper_Ledger,
       
dmpaper_Legal,
       
dmpaper_Statement,
       
dmpaper_Executive,
       
dmpaper_A3,
       
dmpaper_A4,
       
dmpaper_A4Small,
       
dmpaper_A5,
       
dmpaper_B4,
       
dmpaper_B5,
       
dmpaper_Folio,
       
dmpaper_Quarto,
       
dmpaper_10X14,
       
dmpaper_11X17,
       
dmpaper_Note,
       
dmpaper_Env_9,
       
dmpaper_Env_10,
       
dmpaper_Env_11,
       
dmpaper_Env_12,
       
dmpaper_Env_14,
       
dmpaper_CSheet,
       
dmpaper_DSheet,
       
dmpaper_ESheet,
       
dmpaper_cheque, { obtenemos este valormirando en el codigo de la impresora 
       $
100); 

Ya solo nos falta retocar la función :

Código PHP:

function QRPaperName(Size TQRPaperSize) : string;
const
  
Names : array[Default..Customof string = (
   
SqrPaperSize0SqrPaperSize1SqrPaperSize2SqrPaperSize3,
   
SqrPaperSize4SqrPaperSize5SqrPaperSize6SqrPaperSize7,
   
SqrPaperSize8SqrPaperSize9SqrPaperSize10SqrPaperSize11,
   
SqrPaperSize12SqrPaperSize13SqrPaperSize14SqrPaperSize15,
   
SqrPaperSize16SqrPaperSize17SqrPaperSize18SqrPaperSize19,
   
SqrPaperSize20SqrPaperSize21SqrPaperSize22SqrPaperSize23,
   
SqrPaperSize24SqrPaperSize25SqrPaperSize26SqrPaperSize27SqrPaperSize28 Esto eslo nuevo} );
 
begin
  Result 
:= Names[Size];
end


Recompilamos la libreria y la instalamos como de costumbre.

jlmelida 28-01-2005 21:46:28

Si todo el trabajo se ha hecho bién, al diseñar un informe, usando la clase TQuickRep, en el inspector de objetos, en el apartado Page, podremos seleccionar el tamaño de papel definido por nosotros ( cheque en nuestro ejemplo).


Deberá tener las dimensiones definidas a nuestro gusto y además, un código que será entendido por nuestra impresora matricial.

Con ello, ya podremos usar tamaños de papel definidos por el usuario.

Saludos.

vic_ia 29-01-2005 01:32:48

mi más sincera felicitación...!!!

una de las explicaciones mas simples y entendibles de las que he ledido aqui y en otros foros y sitios de programacion...

siempre he lidiado con escribir directamente al puerto por que no le hallaba por donde atacar el problema...

he llegado apenas a la definición del papel (excepcional por lo sencillo), y espero, el fin de semana completar los pasos y tener asi, la opcion de mejorar mis viejos y proximos proyectos...

gracias por la ayuda....

Mass 09-03-2005 21:58:38

Lo hice y no me funciono.
 
Hola que tal, soy Jorge y soy nuevo en este foro, mas bien nunca he estado en uno, soy mexicano y tengo un problema bastante serio.

Tengo un sistema que diario imprime hasta 1000 folios a 1/3 de carta y lo hacia bastante bien con QR y con la impresora en tamaño del papel CUSTOM, hasta que por necesidades de la empresa actualizan equipos y estos traen instalados XP, ahí mi problema, no puedo personalizar el tamaño del papel, me encontre con tu articulo y me parecio bastante logico y muy bueno, pero hice todo hasta que llegue a probarlo con word y no me funciono, configuro la pagina con un formato llamado ABONO que mide 1/2 carta y si me muestra ese tamaño en la pantalla, pero al momoemtnode mandar imprimir se salta hacia la otra hoja, no se detiene al finalizar el documento. saludos espero y puedas ayudarme.

pijo 11-03-2005 13:35:20

Yo también me he encontrado a veces con el problema de que con el método que propones no lo he podido solucionar. Entonces la solución a pasado por retocar la configuración del tamaño del papel en la propia impresora a traves de los menús extraños que traen ellas mismas. Si tienes el tamaño predefinido en la impresora bien, si no, no hay solución...

Luis Felix 11-03-2005 19:48:52

Hola de nueva cuenta, he leido todos los hilos de este tema, y en el primero se comenta, que es muy probable que existan muchos hilos relacionados con quickreport y xp, porque no se le ha dado solución al problema, es verdad, yo postie un hilo porque no encontre solución en otro y aun sigo sin encontarla, al leer el primer hilo de esta cadena pense, por fin encontre la solucion a mi problema, porque no puedo abrir los quickreport en windows xp, pero al leer todos los hilos me di cuenta de que no hay solucion todavia, por favor si alguien sabe que hacer para que pueda abrir los quickreport le agradeceria mucho lo posteara, creo que sera de mucha utilidad para muchos usuarios, gracias y un saludo.

jlmelida 12-03-2005 01:26:19

Cita:

Empezado por Mass
Hola que tal, soy Jorge y soy nuevo en este foro, mas bien nunca he estado en uno, soy mexicano y tengo un problema bastante serio.

Tengo un sistema que diario imprime hasta 1000 folios a 1/3 de carta y lo hacia bastante bien con QR y con la impresora en tamaño del papel CUSTOM, hasta que por necesidades de la empresa actualizan equipos y estos traen instalados XP, ahí mi problema, no puedo personalizar el tamaño del papel, me encontre con tu articulo y me parecio bastante logico y muy bueno, pero hice todo hasta que llegue a probarlo con word y no me funciono, configuro la pagina con un formato llamado ABONO que mide 1/2 carta y si me muestra ese tamaño en la pantalla, pero al momoemtnode mandar imprimir se salta hacia la otra hoja, no se detiene al finalizar el documento. saludos espero y puedas ayudarme.

Jorge: Disculpa la tardanza en contestar, pero como ya advertí dispongo de poco tiempo y suelo entrar el el foro los fines de semana. Hoy he leido tu mensaje.

Antes de seguir, deseo animarte porque lo que se expuse en este topic es cierto. Se puede con QReport y windows XP imprimir en el formato que desees. Por ello, debes estar haciendo algo mal y hay que descubrirlo.

Si Word no para y sigue imprimiendo debes tener mal configurada la impresora.
Pulsa Inicio, panel de control, Impresoras y otro hardware. Remarca la impresora genérica y con el boton derecho del mouse, vete a propiedades. Preferencias de impresión y en la pestaña papel/calidad, en origen del papel puedes seleccionar el comportamiento de la impresora:
Alimentación continua:sin pausa o bien
Alimentación continua:con pausa.

Prueba con ello hasta conseguir lo que desees.
Si no se soluciona el problema, repasa el metodo. Tiene que salir bién.
Si es otro el problema, comunicalo de nuevo. Pero insisto, no es una teoría mas o menos linda. Tenemos varias aplicaciones y todas funcionan correctamente con diversos tamaños de papel.

saludos

jlmelida 12-03-2005 01:31:01

Cita:

Empezado por Luis Felix
.... por favor si alguien sabe que hacer para que pueda abrir los quickreport le agradeceria mucho lo posteara, creo que sera de mucha utilidad para muchos usuarios, gracias y un saludo.

Podrias explicar que entiendes por abrir el quickreport ?.

No tienes que abrir nada, simplemente modificas los fuentes como se ha explicado y compilas de nuevo para tener una paquete de tu quickreport modificado. Esto solo lo haces una vez y ya te sirve para desarrollar todas las aplicaciones que desees.

saludos.

jlmelida 12-03-2005 01:37:24

Cita:

Empezado por pijo
.... Entonces la solución a pasado por retocar la configuración del tamaño del papel en la propia impresora a traves de los menús extraños que traen ellas mismas. Si tienes el tamaño predefinido en la impresora bien, si no, no hay solución...

Pues te aseguró que si que tiene solución. Ocurre que hay que investigar algo mas. Estamos definiendo un driver generico/solotexto ¿ Lo soporta tu impresora ? Porque si no es así, ya hemos terminado.

Muchas impresoras tienen emulación Epson o IBM. Ponla a trabajar con la emulación Epson. Es posible que si no, no pueda ser "gobernada" por un driver genérico.

Pregunta todas las dudas. Muchas veces es un pequeño detalle que hacemos mal el culpable de todo.

Saludos:

pijo 15-03-2005 09:09:39

a ver, siempre que me he encontrado con el problema lo he acabado solucionando. A mi no se me ha resistido aun ninguna impresora (que haya pasado por mis manos jeje). Pero si que es un tema extraño, ya que dependiendo de la impresora/sistema operativo les he tenido que dar soluciones muy distintas, casi una solución diferente por impresora.
Incluso me he encontrado con casos (misma impresora, misma configuración hard impresora, mismo sistema operativo, mismo driver, mismos parámetros en el driver) y las impresoras no me actuaban de la misma manera. Es un tema pendiente aun, pero la realidad, es que espero que le quede poca vida a las impresoras matriciales. Por que si no va ser un tema jodido, cada vez más ....

ánimos a todos
saludos

rafita 15-03-2005 11:58:03

Fantastica exposición y solución a un problema muy común en este foro.

Yo también andaba leyendo y releyendo mensajes, buscando cómo solucionar los problemas con el cambio de Win98se a WinXP.

En mi caso no utilizo una impresora matricial, sino de chorro de tinta antigua, y no sabía cómo configurarle un papel especial.
Con los tres primeros mensajes de JLMelida lo he solucionado. Pero, aun así he leido con entusiasmo todos los demás.

Repito, maravillosa exposición.
Gracias.

jlmelida 16-03-2005 00:16:27

Cita:

Empezado por pijo
... pero la realidad, es que espero que le quede poca vida a las impresoras matriciales. Por que si no va ser un tema jodido, cada vez más ....

ánimos a todos
saludos

Mientras exista el papel autocopiante, necesitaremos las matriciales. Precisamente son los Organismos Oficiales los que mas impresos y/o planillas nos obligan a rellenar. Ojalá se cumplan tus deseos.

Cita:

Empezado por pijo
A mi no se me ha resistido aun ninguna impresora (que haya pasado por mis manos jeje).

Y si desaparecen, ¿ que vas a hacer con todo ese tiempo libre ? :D
Saludos

rafita 16-03-2005 14:41:10

Hola compañeros,

A mi sí se me ha resistido una impresora: HP Deskjet690C.

En mi ordenador (WinXP prof+SP2) le añadí un formulario perfectamente, lo reconoció a la primera y pude imprimir sin problemas desde mi aplicación.

Hoy se la he puesto al usuario (también es WinXP pro+SP2, y el usuario es administrador). Le añado el formulario sin problemas, pero la impresora no lo detecta ese tipo de papel, ni ninguno de los que añado.

He eliminado y reinstalado la impresora, he probado con varios formularios (añadiendo nuevos y modificando existentes)... todo lo que se me ha ocurrido... y nada.

¿alguien me puede orientar?
(Mañana será otro día. Me voy a comer que se me enfria la sopa. Gracias)

jlmelida 16-03-2005 21:09:25

Cita:

Empezado por rafita
Hola compañeros,

A mi sí se me ha resistido una impresora: HP Deskjet690C.

En mi ordenador (WinXP prof+SP2) le añadí un formulario perfectamente, lo reconoció a la primera y pude imprimir sin problemas desde mi aplicación.

Hoy se la he puesto al usuario (también es WinXP pro+SP2, y el usuario es administrador). Le añado el formulario sin problemas, pero la impresora no lo detecta ese tipo de papel, ni ninguno de los que añado.

He eliminado y reinstalado la impresora, he probado con varios formularios (añadiendo nuevos y modificando existentes)... todo lo que se me ha ocurrido... y nada.

¿alguien me puede orientar?
(Mañana será otro día. Me voy a comer que se me enfria la sopa. Gracias)

Si es raro. ¿ Le diste sopa ? Tal vez sea ese el problema.:D

Bién, retomando la seriedad ¿ Podrías indicar en que fase no te reconoce el papel ? Quiero decir, se trata del Word o es ya tu aplicación. Recuerda que como primer paso, debemos estar seguros de que el driver de tu impresora soporta el nuevo papel y que para eso deberias imprimir desde word con el nuevo papel sin problemas.
Inidica este aspecto para poder ayudarte.

Saludos.

rafita 17-03-2005 12:08:45

Hola Julio, gracias por atenderme.

Lo único que he hecho ha sido definirme el formulario. Al ir a asignarselo a la impresora sólo me aparecen unos cuantos de los predefinidos, pero no ninguno de los que yo creo o modifico. Por eso estuve buscando los archivos que WinXP modifica al cambiar la configuración de la impresora, para ver si era capaz de localizarlo y sustituirlo en el ordenador que falla, pero nada de nada...

Le daré más sopa a ver si se anima.... ;)

jlmelida 17-03-2005 23:21:09

Cita:

Empezado por rafita
Hola Julio, gracias por atenderme.

Lo único que he hecho ha sido definirme el formulario. Al ir a asignarselo a la impresora sólo me aparecen unos cuantos de los predefinidos, pero no ninguno de los que yo creo o modifico. Por eso estuve buscando los archivos que WinXP modifica al cambiar la configuración de la impresora, para ver si era capaz de localizarlo y sustituirlo en el ordenador que falla, pero nada de nada...

Le daré más sopa a ver si se anima.... ;)

Bién, eso se debe a que el driver de tu impresora no los reconoce. Prueba a instalar algún driver "parecido" de los que trae el propio windows xp en el CD. Prueba todos los de la marca de tu impresora hasta que consigas uno que reconozca ese formato y desde luego funcione.

Ese era el motivo por lo que en las impresoras matriciales usabamos el driver generico/solo texto en lugar del especifico de la impresora. El generico, reconoce todos los tipos de papeles definidos en el sistema operativo.

Si te atreves, también puedes fabricarte tu propio driver. No es precisamente facil, pero puede hacerse.

Saludos y cuentanos tus avances.

rafita 18-03-2005 11:42:05

Cita:

Empezado por jlmelida
eso se debe a que el driver de tu impresora no los reconoce.

La impresora la instalo con los drivers que trae WinXP, y he hecho pruebas instalándola en varios ordenadores y en todos funciona correctamente (salvo en el que me interesa).

Pero, tienes razón, voy a intentar configurar la impresora con HP deskjet 691C ... en vez de 690C. A ver si hay suerte.

Gracias Julio.

jlmelida 19-03-2005 01:19:22

He efectuado pruebas en mi equipo, con windows XP y ninguna impresora HP de la serie deskjet admite un tamaño de hoja personalizado que yo haya creado antes.

Si te funciona en unos si y en otros no, quizás se deba a la versión de windows. La mía la actualizo de forma automatica en Internet y tengo el Service Pack nº 2.

Tampoco entiendo bien el motivo de querer crear un formato personalizado en una impresora de hojas sueltas. Me refiero a que quizás logres el mismo resultado trabajando con margenes.

¿ Que diferencia hay entre una hoja de papel de por ejemplo 10 x 10 y una A4 ( 21 x 29,7 ) con margen inferior de 19,7 ?. En ambos casos la longitud final será 10 cm. Para el ancho, un margen derecho de 11 cm equivaldría a un ancho neto de 10 cm.

Quiero decir que con hojas sueltas, jugando con los margenes puedes simular casi cualquier formato.

Saludos.

rafita 29-03-2005 13:02:14

Hola Julio,
Ante todo perdona la desconexión de estos días: me secuestraron mis hijas.

Ayer volví a la faena y pasé todo el día pegandome con este problema. No lo resolví completamente pero alcancé un estado en el que me sirve.

En primer lugar sí he conseguido (con WinXP+SP2) ponerle un papel personalizado (formulario) a una impresora deskjet. Me ha costado muchísmo, porque me aceptaba unos sí y otros no. Pensé que era el nombre, o que solo me permitía modificar una de las dimensiones, pero al final era algo tan simple como que el ancho sea menor que el alto.

Después puse ese tipo de papel predeterminado en todos los sitios posibles, tal y como tú indicas en tus instrucciones.

Finalmente tuve que modificar el programa y cambiar los informes, poniéndoles papel tipo CUSTOM y orientación Portrait (vertical). Anteriormente lo tenía en horizontal y funcionaba perfectamente, pero ahora lo he tenido que cambiar.

En el camino he perdido la compatibilidad con Win98se, porque me recorta parte del informe, pero a estas alturas paso de perder el tiempo con esto.

La necesidad de un papel personalizado es porque imprimo tarjetas en cartulinas de un tamaño concreto. No puedo suplirlo con papel DinA4 y margenes porque la impresora se queda esperando más papel (no me explico el por qué).

He descubierto que al utilizar el tamaño de papel CUSTOM (en el QuickReport) no necesito modificarme nada en el código de ninguna unidad que no sea mía (además, me da pánico).

Muchas gracias por tu trabajo y por tu interés.

Seguimos en contacto.

knife_sj 30-01-2006 00:23:40

realmente impresionante la explicacion, me salvaste la vida :)

no todos los dias se encuentra gente en los foros q contribuyan tanto

josejm 02-05-2006 15:41:04

Problema casi resuelto.
 
Gracias a Julio de Alicante por resolver nuestro gran problema en matriciales.
A mi ya solo me queda una pequeña duda, ¿Como asigno mediante codigo un tipo de papel?, he provado a poner :
Código Delphi [-]
QuickRep1.Page.PaperSize:=Sobre;

Pero esto no me funciona me da error.

JODELSA 25-07-2006 14:22:39

Como modificar los fuentes de Qreport
 
Eres la persona que mas domina este tema y mira que he luchado mucho con este problema hasta el punto que me siente desesperado.

Yo pude crear la impresora y el formulario con las medida que necesito, tambien lo probé en Word y todo funiciono perfecto. lo que no he podido hacer es retocar los fuentes de QReport.

Si no es mucha molestia me podria explicar mejor como cargo el paquete
qrpt70.bpl

Nota: Uso delphi 7.0 y la version de Qreport que viene con este.




Cita:

Empezado por jlmelida
Si todo el trabajo se ha hecho bién, al diseñar un informe, usando la clase TQuickRep, en el inspector de objetos, en el apartado Page, podremos seleccionar el tamaño de papel definido por nosotros ( cheque en nuestro ejemplo).


Deberá tener las dimensiones definidas a nuestro gusto y además, un código que será entendido por nuestra impresora matricial.

Con ello, ya podremos usar tamaños de papel definidos por el usuario.

Saludos.


jlmelida 20-08-2006 21:58:49

Hola JODELSA:

Perdona el retraso en contestar, pero es que como ya dije tengo muy poco tiempo y mis entradas al foro suceden de tarde en tarde.

Antes de seguir, recuerda que es necesario que tengas la versión profesional que es la que trae los fuentes.
Normalmente los tendras en un subdirectorio de Delphi7. El nombre por defecto es quickrpt.
Cargas Delphi, y ante de nada, borras todo lo que tengas. ( Menu File y luego Close All). Así se queda "limpio" el Ide de Delphi. Luego, otra vez con el mismo menu : File, Open y te dirijes al directorio quickrpt. Veras que los paquetes ( Packages) aparecen con iconos distintos. Para la version de Qreport 4 son QR4RunD7 y QR4DesignD7. Para la version 3 son qrpt70.bpl y dclqr70.bpl.

Si remarcas el package qrpt70 ( y tienes los fuentes ) te aparecerá en una ventana Package qrpt70, las unidades y
las que requiere. El aspecto es el clásico de un TreeView o arbol como el del explorador de windows.

Otra vez doble click sobre el fuente que quieras retocar y despues de escribir el nuevo código, terminas dandole al menú install.

Tu nuevo paquete retocado, habrá sustituido al antiguo. Acuerdate de sacar unas buenas copias de seguridad antes de empezar.

Cualquier duda que tengas, me la comunicas y prometo contestarla :D antes de fin de año.

Saludos.

Erik_Magnus 29-08-2006 19:51:17

Tengo con un cliente una impresora Epson LX-870 (el 70 no estoy muy seguro, pero no creo que se modifique mucho de una version de impresora a otra) , para las facturar uso un formato personalizado , en Windows 95-98 no tengo ninguna clase de problema, todo jala bien, en la maquina con XP defino el papel personalizado, lo pongo a que lo use en todas partes donde sale otro papel y no jala, el reporte sigue saliendo como tamaño carta (manda a imprimir un espacio en blanco despues de la impresion, y con esto ya no queda cerca del corte de la hoja) , yo uso en el quickreport el tamaño de papel CUSTOM , el tamaño del papel que voy a usar lo leo de un archivo INI , tengo Delphi 4 y la version 3.0.5 Standar de Quickreport (si vivo en el pasado lo se :D ) por lo que no tengo las fuentes para hacer los cambios que mencionan mas arriba, asi que mi pregunta es ¿existe alguna forma de hacerlo que funcione sin modificar las fuentes de quickreport?

jlmelida 02-09-2006 14:44:07

Cita:

Empezado por Erik_Magnus
en Windows 95-98 no tengo ninguna clase de problema.... , tengo Delphi 4 y la version 3.0.5 Standar de Quickreport (si vivo en el pasado lo se :D ) por lo que no tengo las fuentes para hacer los cambios que mencionan mas arriba, asi que mi pregunta es ¿existe alguna forma de hacerlo que funcione sin modificar las fuentes de quickreport?

Si.... Sigue en el pasado e instala de nuevo windows 98 ó 95... ;)

Saludos

Erik_Magnus 03-09-2006 00:25:28

Cita:

Empezado por jlmelida
Si.... Sigue en el pasado e instala de nuevo windows 98 ó 95... ;)

Saludos

jajaja, con ese cliente no habria problemas en eso, todas sus maquinas son 98 o 95 , solo que me lo tome como algo personal :D

Besto 21-12-2006 14:48:35

Gracias
 
Hola,
la verdad es que estaba totalmente perdido en como poder definir el tamaño de papel al quick report y esto me ha salvado.

Muchas gracias.

Yo he creado el formulario con el tamaño seleccionado y luego en la configuración de la impresora he puesto que me use ese tamaño.
En este programa uso delphi 2 y la versión de quick report no la sé, pero no tengo los archivos que han puesto antes, así que en el control de quick report he puesto el tamaño default y se me ha resuelto el problema.

JODELSA 21-12-2006 20:24:34

Imprimir en tamaño personalizado
 
Al fin despues de tanto tiempo la solución llega..

Pues es cierlo sólo hay que seleccionar el tamaño del papel "Default zise" en QuickReport y (ojo no utilizen custum size) pues esto no funciona aunque en el preview se vea bien.

Luego solo hay que crear el tamaño de papel deseado por el servidor de propiedades de la impresora, se modifica la impresora para que utilize este tamaño y ya esta.

Kipow 23-12-2006 05:35:23

Cita:

Empezado por JODELSA
Al fin despues de tanto tiempo la solución llega..

Pues es cierlo sólo hay que seleccionar el tamaño del papel "Default zise" en QuickReport y (ojo no utilizen custum size) pues esto no funciona aunque en el preview se vea bien.

Luego solo hay que crear el tamaño de papel deseado por el servidor de propiedades de la impresora, se modifica la impresora para que utilize este tamaño y ya esta.

el problema es que la impresora no acepte este tamaño de papel personalizado, yo estoy realizando pruebas ahorita y me da el problema de que tengo que instalar una impresora "Generica solo/Texto" q es la unica q me acepta el tamaño de papel personalizado (8" x 1") y realmente se esta imprimiendo en una Epson Lx-300, hay alguna forma de hacer que la Epson reciba el tamaño de papel personalizado?

JODELSA 27-12-2006 22:07:58

Pues alguien ya me planteo la situación yo tendre que hacer prueba con una lx-300 y luego respondo.

xerkan 04-01-2007 21:35:31

Sabe alguno como usar este metodo pero usando el rave reports en vez del quickreports ya que es el que biene con delphi 2006 y este ya no trae soporte alguno para el quick reports

gatita 15-08-2007 19:56:08

Fuente No Deseada Al Imprimir
 
Hola, me acabo de unir al Foro, muy interesante el tema, he seguido todos los pasos correctamente, pero tuve un problema con el driver generico: al imprimir sale todo pero no con la fuente deseada, y ademas no respecta los espacios en donde debe imprimirse el texto :confused:

Ayudenme porfis si?

Gracias anteladamente.

josejm 17-08-2007 15:32:29

Fuentes no soportadas para Generica solo texto.
 
Segun decias "gatita" el problema surge cuando cambias los tipos de fuentes, algunos drivers genericos no soportan todas las fuentes, pero si es matricial deberias de imprimir con alguna courier o con otra similar.
El tema de los espacios supongo que sera porque al imprimir estaras indicando las posiciones en una medida diferente de la que esta cogiendo el QuickReport. Yo siempre lo paso a mm y nunca he tenido problemas

Visita pronto http://www.miranos.es aqui tendreis ejemplos mios y mucha información sobre delphi.
Gracias a club delphi por seguir aqui. :o


La franja horaria es GMT +2. Ahora son las 06:32:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi