Impresoras, Preview y PDF

Post Reply
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Impresoras, Preview y PDF

Post by Manuel Aranda »

En un archvio .PNG o .JPG tengo un formulario con su encasillado y que fusiono con datos de la siguiente forma:

Code: Select all

PRINTER oPrn NAME "Formulario preimpreso"  //PREVIEW
         oIT = TImage():Define( , "IMPRESO.PNG" )
         oPrn:SayImage( 0, 0, oIT,4800,6800 )
          //
          oPrn:CmSay(6.3,3.5, EMPRESAS->Nombre, oFont4)
          oPrn:CmSay(6.3,16.8, EMPRESAS->NIF, oFont4)
          ................
          ................
Pues bien, si envio directamente a la impresora todo sale perfecto, cada dato en su casilla. Pero si envio a imprimir en un fichero PDF los datos salen descuadrados e igualmente ocurre en el PREVIEW. ¿ Porqué pasa esto ?

Un saludo,
Manuel Aranda
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

También he podido comprobar que en algunas impresoras el formulario sale perfecto y en otras extremadamente grande ¿porqué?

Saludos,
Manuel Aranda
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Amiguinho

E se fixar o tipo de papel

Code: Select all

...
oPrn:SetPage(9) // 9 indica formato A4
...
Veja isto:

Code: Select all

   #define DMPAPER_LETTER               1  // Letter 8 1/2 x 11 in
   #define DMPAPER_LETTERSMALL          2  // Letter Small 8 1/2 x 11 in
   #define DMPAPER_TABLOID              3  // Tabloid 11 x 17 in
   #define DMPAPER_LEDGER               4  // Ledger 17 x 11 in
   #define DMPAPER_LEGAL                5  // Legal 8 1/2 x 14 in
   #define DMPAPER_STATEMENT            6  // Statement 5 1/2 x 8 1/2 in
   #define DMPAPER_EXECUTIVE            7  // Executive 7 1/4 x 10 1/2 in
   #define DMPAPER_A3                   8  // A3 297 x 420 mm
   #define DMPAPER_A4                   9  // A4 210 x 297 mm
   #define DMPAPER_A4SMALL             10  // A4 Small 210 x 297 mm
   #define DMPAPER_A5                  11  // A5 148 x 210 mm
   #define DMPAPER_B4                  12  // B4 (JIS) 250 x 354
   #define DMPAPER_B5                  13  // B5 (JIS) 182 x 257 mm
   #define DMPAPER_FOLIO               14  // Folio 8 1/2 x 13 in
   #define DMPAPER_QUARTO              15  // Quarto 215 x 275 mm
   #define DMPAPER_10X14               16  // 10x14 in
   #define DMPAPER_11X17               17  // 11x17 in
   #define DMPAPER_NOTE                18  // Note 8 1/2 x 11 in
   #define DMPAPER_ENV_9               19  // Envelope #9 3 7/8 x 8 7/8
   #define DMPAPER_ENV_10              20  // Envelope #10 4 1/8 x 9 1/2
   #define DMPAPER_ENV_11              21  // Envelope #11 4 1/2 x 10 3/8
   #define DMPAPER_ENV_12              22  // Envelope #12 4 \276 x 11
   #define DMPAPER_ENV_14              23  // Envelope #14 5 x 11 1/2
   #define DMPAPER_CSHEET              24  // C size sheet
   #define DMPAPER_DSHEET              25  // D size sheet
   #define DMPAPER_ESHEET              26  // E size sheet
   #define DMPAPER_ENV_DL              27  // Envelope DL 110 x 220mm
   #define DMPAPER_ENV_C5              28  // Envelope C5 162 x 229 mm
   #define DMPAPER_ENV_C3              29  // Envelope C3  324 x 458 mm
   #define DMPAPER_ENV_C4              30  // Envelope C4  229 x 324 mm
   #define DMPAPER_ENV_C6              31  // Envelope C6  114 x 162 mm
   #define DMPAPER_ENV_C65             32  // Envelope C65 114 x 229 mm
   #define DMPAPER_ENV_B4              33  // Envelope B4  250 x 353 mm
   #define DMPAPER_ENV_B5              34  // Envelope B5  176 x 250 mm
   #define DMPAPER_ENV_B6              35  // Envelope B6  176 x 125 mm
   #define DMPAPER_ENV_ITALY           36  // Envelope 110 x 230 mm
   #define DMPAPER_ENV_MONARCH         37  // Envelope Monarch 3.875 x 7.5 in
   #define DMPAPER_ENV_PERSONAL        38  // 6 3/4 Envelope 3 5/8 x 6 1/2 in
   #define DMPAPER_FANFOLD_US          39  // US Std Fanfold 14 7/8 x 11 in
   #define DMPAPER_FANFOLD_STD_GERMAN  40  // German Std Fanfold 8 1/2 x 12 in
   #define DMPAPER_FANFOLD_LGL_GERMAN  41  // German Legal Fanfold 8 1/2 x 13 in
   #define DMPAPER_ISO_B4              42  // B4 (ISO) 250 x 353 mm
   #define DMPAPER_JAPANESE_POSTCARD   43  // Japanese Postcard 100 x 148 mm
   #define DMPAPER_9X11                44  // 9 x 11 in
   #define DMPAPER_10X11               45  // 10 x 11 in
   #define DMPAPER_15X11               46  // 15 x 11 in
   #define DMPAPER_ENV_INVITE          47  // Envelope Invite 220 x 220 mm
   #define DMPAPER_RESERVED_48         48  // RESERVED--DO NOT USE
   #define DMPAPER_RESERVED_49         49  // RESERVED--DO NOT USE
   #define DMPAPER_LETTER_EXTRA        50  // Letter Extra 9 \275 x 12 in
   #define DMPAPER_LEGAL_EXTRA         51  // Legal Extra 9 \275 x 15 in
   #define DMPAPER_TABLOID_EXTRA       52  // Tabloid Extra 11.69 x 18 in
   #define DMPAPER_A4_EXTRA            53  // A4 Extra 9.27 x 12.69 in
   #define DMPAPER_LETTER_TRANSVERSE   54  // Letter Transverse 8 \275 x 11 in
   #define DMPAPER_A4_TRANSVERSE       55  // A4 Transverse 210 x 297 mm
   #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56 // Letter Extra Transverse 9\275 x 12 in
   #define DMPAPER_A_PLUS              57  // SuperA/SuperA/A4 227 x 356 mm
   #define DMPAPER_B_PLUS              58  // SuperB/SuperB/A3 305 x 487 mm
   #define DMPAPER_LETTER_PLUS         59  // Letter Plus 8.5 x 12.69 in
   #define DMPAPER_A4_PLUS             60  // A4 Plus 210 x 330 mm
   #define DMPAPER_A5_TRANSVERSE       61  // A5 Transverse 148 x 210 mm
   #define DMPAPER_B5_TRANSVERSE       62  // B5 (JIS) Transverse 182 x 257 mm
   #define DMPAPER_A3_EXTRA            63  // A3 Extra 322 x 445 mm
   #define DMPAPER_A5_EXTRA            64  // A5 Extra 174 x 235 mm
   #define DMPAPER_B5_EXTRA            65  // B5 (ISO) Extra 201 x 276 mm
   #define DMPAPER_A2                  66  // A2 420 x 594 mm
   #define DMPAPER_A3_TRANSVERSE       67  // A3 Transverse 297 x 420 mm
   #define DMPAPER_A3_EXTRA_TRANSVERSE 68  // A3 Extra Transverse 322 x 445 mm
   #define DMPAPER_DBL_JAPANESE_POSTCARD 69 // Japanese Double Postcard 200 x 148 mm
   #define DMPAPER_A6                  70  // A6 105 x 148 mm
   #define DMPAPER_JENV_KAKU2          71  // Japanese Envelope Kaku #2
   #define DMPAPER_JENV_KAKU3          72  // Japanese Envelope Kaku #3
   #define DMPAPER_JENV_CHOU3          73  // Japanese Envelope Chou #3
   #define DMPAPER_JENV_CHOU4          74  // Japanese Envelope Chou #4
   #define DMPAPER_LETTER_ROTATED      75  // Letter Rotated 11 x 8 1/2 11 in
   #define DMPAPER_A3_ROTATED          76  // A3 Rotated 420 x 297 mm
   #define DMPAPER_A4_ROTATED          77  // A4 Rotated 297 x 210 mm
   #define DMPAPER_A5_ROTATED          78  // A5 Rotated 210 x 148 mm
   #define DMPAPER_B4_JIS_ROTATED      79  // B4 (JIS) Rotated 364 x 257 mm
   #define DMPAPER_B5_JIS_ROTATED      80  // B5 (JIS) Rotated 257 x 182 mm
   #define DMPAPER_JAPANESE_POSTCARD_ROTATED 81 // Japanese Postcard Rotated 148 x 100 mm
   #define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED 82 // Double Japanese Postcard Rotated 148 x 200 mm
   #define DMPAPER_A6_ROTATED          83  // A6 Rotated 148 x 105 mm
   #define DMPAPER_JENV_KAKU2_ROTATED  84  // Japanese Envelope Kaku #2 Rotated
   #define DMPAPER_JENV_KAKU3_ROTATED  85  // Japanese Envelope Kaku #3 Rotated
   #define DMPAPER_JENV_CHOU3_ROTATED  86  // Japanese Envelope Chou #3 Rotated
   #define DMPAPER_JENV_CHOU4_ROTATED  87  // Japanese Envelope Chou #4 Rotated
   #define DMPAPER_B6_JIS              88  // B6 (JIS) 128 x 182 mm
   #define DMPAPER_B6_JIS_ROTATED      89  // B6 (JIS) Rotated 182 x 128 mm
   #define DMPAPER_12X11               90  // 12 x 11 in
   #define DMPAPER_JENV_YOU4           91  // Japanese Envelope You #4
   #define DMPAPER_JENV_YOU4_ROTATED   92  // Japanese Envelope You #4 Rotated
   #define DMPAPER_P16K                93  // PRC 16K 146 x 215 mm
   #define DMPAPER_P32K                94  // PRC 32K 97 x 151 mm
   #define DMPAPER_P32KBIG             95  // PRC 32K(Big) 97 x 151 mm
   #define DMPAPER_PENV_1              96  // PRC Envelope #1 102 x 165 mm
   #define DMPAPER_PENV_2              97  // PRC Envelope #2 102 x 176 mm
   #define DMPAPER_PENV_3              98  // PRC Envelope #3 125 x 176 mm
   #define DMPAPER_PENV_4              99  // PRC Envelope #4 110 x 208 mm
   #define DMPAPER_PENV_5              100 // PRC Envelope #5 110 x 220 mm
   #define DMPAPER_PENV_6              101 // PRC Envelope #6 120 x 230 mm
   #define DMPAPER_PENV_7              102 // PRC Envelope #7 160 x 230 mm
   #define DMPAPER_PENV_8              103 // PRC Envelope #8 120 x 309 mm
   #define DMPAPER_PENV_9              104 // PRC Envelope #9 229 x 324 mm
   #define DMPAPER_PENV_10             105 // PRC Envelope #10 324 x 458 mm
   #define DMPAPER_P16K_ROTATED        106 // PRC 16K Rotated
   #define DMPAPER_P32K_ROTATED        107 // PRC 32K Rotated
   #define DMPAPER_P32KBIG_ROTATED     108 // PRC 32K(Big) Rotated
   #define DMPAPER_PENV_1_ROTATED      109 // PRC Envelope #1 Rotated 165 x 102 mm
   #define DMPAPER_PENV_2_ROTATED      110 // PRC Envelope #2 Rotated 176 x 102 mm
   #define DMPAPER_PENV_3_ROTATED      111 // PRC Envelope #3 Rotated 176 x 125 mm
   #define DMPAPER_PENV_4_ROTATED      112 // PRC Envelope #4 Rotated 208 x 110 mm
   #define DMPAPER_PENV_5_ROTATED      113 // PRC Envelope #5 Rotated 220 x 110 mm
   #define DMPAPER_PENV_6_ROTATED      114 // PRC Envelope #6 Rotated 230 x 120 mm
   #define DMPAPER_PENV_7_ROTATED      115 // PRC Envelope #7 Rotated 230 x 160 mm
   #define DMPAPER_PENV_8_ROTATED      116 // PRC Envelope #8 Rotated 309 x 120 mm
   #define DMPAPER_PENV_9_ROTATED      117 // PRC Envelope #9 Rotated 324 x 229 mm
   #define DMPAPER_PENV_10_ROTATED     118 // PRC Envelope #10 Rotated 458 x 324 mm
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Gracias amigo, pero no creo que sea ese el problema, ya tengo establecidas las dimensiones del papel con oPrn:SetSize(210*10,297*10).

Un saludo,
Manuel
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Hola Manuel, a mi me paso algo parecido. Yo creo que el problema es de las distintas resoluciones de la impresora, seguranmente el generador de PDF, debe trabaja a otra resolucion distinta de la que trabaja tu impresora.
Ese es el problema, pero, no se como solucionarlo.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Post by Mike Serra »

Manuel / Biel, creo que el problema se podría resolver, o por lo menos, aproximarlo mas con lo siguiente:

En la funcion a imprimir declarais las siguientes variables:
local nFilas:=50
local nColumnas:=80

Code: Select all

print oRep preview title "Generador de Presupuestos Ver 1.0" 
    define font ofont name "Arial" size 0,10 bold of oRep
    define font ofont1 name "Arial" size 0,9 of oRep
    oRep:Setup()
    PAGE
       PosColum:=oRep:nHorzRes()/nColumnas
       PosFila:=oRep:nVertRes()/nFilas
       oRep:Say(10*PosFila,9*PosColum,<datos>,ofont)
        ...
        ...
Con esto lo que conseguimos, es dividir, en este ejemplo, el folio en 50 filas y 80 columnas, dando igual el tipo de impresora. Yo lo uso y da igual si imprimo en una matricial, laser, tinta, y supongo que dará lo mismo que en el PDF, ya que antes de imprimir, verá la resolución que tiene y lo dividirá en filas y columnas.

Espero que os sirva, ya me comentáis algo.

SALUDOS
User avatar
Lautaro
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile
Contact:

Post by Lautaro »

Concuerdo con Mike sobre la solucion, ahora la raiz del problema es que las coordenadas se dan en pixeles y dependiendo de la resolucion de la impresora ( ppp , o puntos por pulgada ) estos valores no tienen nada que ver entre uno y otro modelo.

Lo mas recomendable es hacer como muestra mike, de hecho todos mis informes los genero usando algo parecido.


Atte.
Lautaro Moreira
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

El problema es que los parametros del metodo ::SayImage() estan dados en PIXELES cuya resolucion cambia de impresora en impresora, dependiendo del modelo que estes usando y si tiene mas o menos pixeles por pulgada con lo cual, varia el tamaño

Solucion, conviertan todo a centimetros y utilicen el metodo cmtr2pix para obtener el tamaño exacto en pixeles dependiendo de la impresora

aTam := oPrn:Cmtr2Pix(5,10)

oPrn:SayImage(0,0,oIT,aTam[1], aTam[2])
Saludos
R.F.
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Muchas gracias a todos.
Problema resuelto.


Saludos,
Manuel Aradna
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Re: Impresoras, Preview y PDF

Post by Garbi »

Hola Manuel Aranda, se que es un tema muyyyyyyyyyyyyyy antiguo, pero podrias indicame como lo solucionaste,
He probado a pasarlo a centrimetros pero me sigue saliendo diferente el preview si elijo impresora pdf o normal.


Gracias.
Post Reply