Page 1 of 1
Impresoras, Preview y PDF
Posted: Sun Jan 28, 2007 6:01 pm
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
Posted: Sun Jan 28, 2007 6:46 pm
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
Posted: Sun Jan 28, 2007 7:40 pm
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
Posted: Sun Jan 28, 2007 8:08 pm
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
Posted: Mon Jan 29, 2007 8:25 am
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.
Posted: Tue Jan 30, 2007 10:14 am
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
Posted: Tue Jan 30, 2007 6:59 pm
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
Posted: Tue Jan 30, 2007 7:03 pm
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])
Posted: Wed Jan 31, 2007 6:23 pm
by Manuel Aranda
Muchas gracias a todos.
Problema resuelto.
Saludos,
Manuel Aradna
Re: Impresoras, Preview y PDF
Posted: Tue Dec 17, 2013 4:52 pm
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.