Problema con PDF en FWH-19.09 - Mi GATO lo solucionó !!!

Problema con PDF en FWH-19.09 - Mi GATO lo solucionó !!!

Postby Cgallegoa » Mon Dec 02, 2019 6:26 pm

Hola amigos, nuevamente dando lata.

No consigo que me funcione bien la generación de PDF con FWH-19.09

Emito un informe con TPRINTER PREVIEW, y desde allí (desde el Preview) genero el pdf.
Este es el resultado:
Image

Esta imagen es la correcta:
Image

Estos son los pasos: se emite un documento/informe directo al PREVIEW (RPREVIEW), y desde allí se manda el PDF si el usuario lo requiere.

La única forma es que logré que emitiera más o menos bien el PDF fue haciendo los siguentes cambios:
En RPREVIEW.PRG sustituyo la línea
Code: Select all  Expand view  RUN
CLASSDATA bSaveAsPDF    INIT { |Self| ::SaveAs( .t. ) }
por
Code: Select all  Expand view  RUN
CLASSDATA bSaveAsPDF    INIT { |Self|FWSavePreviewToPDF( Self ) }

y en PRV2PDF.PRG desactivo (comento) la línea
Code: Select all  Expand view  RUN
#define USEGDI


Con estas chapuceras me genera bien el pdf pero con un peso GIGANTE, y no aprovecho la compresión que se haría con HARUPDF o con MSWORD.

Los ejemplos PDFHARU1 y PDFHARU2 funcionan bien.

Llevo tres días con esto y no logro darle la vuelta. La verdad es que fue precisamente por la necesidad de generar los pdf directamente, sin necesidad de recurrir a librerías externas, que actualicé a FWH-19.09, pero lo que genera es, o demasiado grande y buena calidad si le hago las correcciones que indiqué, o de buen tamaño pero pésima calidad si dejo como viene en FWH.

Estoy seguro que es algo que estoy haciendo mal o que me hace falta, pero ya no encuentro por donde más darle palo, así que amigos míos, cualquier ayuda será, como siempre, eternamente agradecida, y prometo que moveré todas mis influencias con el Creador para que les retribuya con creces :D

Un abrazo
Last edited by Cgallegoa on Mon Dec 02, 2019 8:42 pm, edited 1 time in total.
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Problema con PDF en FWH-19.09

Postby karinha » Mon Dec 02, 2019 6:46 pm

Com haces, asi?

Code: Select all  Expand view  RUN

FUNCTION IMPRIMIR( DeOndePartiu )

   oImage := ".\LOGO.jpg"

   IF DeOndePartiu = "GERARIMP"

      PRINT oPrn NAME "ORÇAMENTO" PREVIEW MODAL  // DIRECTO

   ELSEIF DeOndePartiu = "GERARPDF"  // GERAR EL PDF

      PRINT oPrn PREVIEW NAME "ORCAM" + ALLTRIM( nProposta )

   ENDIF

   DEFINE FONT oFontRua  NAME "Courier New" SIZE 0, - 10                OF oPrn
   DEFINE FONT oFontMin  NAME "Courier New" SIZE 0, - 10 BOLD           OF oPrn
   DEFINE FONT oFont     NAME "Courier New" SIZE 0, - 12                OF oPrn
   DEFINE FONT oFontBold NAME "Courier New" SIZE 0, - 12 BOLD           OF oPrn
   DEFINE FONT oFontSubl NAME "Courier New" SIZE 0, - 12 BOLD UnderLine OF oPrn
   DEFINE FONT oFontSub2 NAME "Courier New" SIZE 0, - 12 BOLD UnderLine OF oPrn

   //-> Caneta do Preview
   DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BROWN                  OF oPrn
   DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BROWN                  OF oPrn
   DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK                  OF oPrn
 
   oPrn:SetPage( 9 )     //-> A4 //9
   oPrn:SetPortrait()  //-> Vertical(Retrato)

   ResLinha  := oPrn:nLogPixely()/2.54
   ResColuna := oPrn:nLogPixelx()/2.54

   nMargin   := Int( 0.1 * oPrn:nHorzRes() )
   nWidth    := 8 * nMargin
   nColWidth := Int( ( nWidth - nMargin ) / 2 )
   nPagina   := 1

   PAGE

      // LOGO
      nRow        :=   1.50  // Linha
      nCol        := 650.00  // Coluna do Logo.jpg

      @ nRow, nCol PRINT TO oPrn IMAGE "LOGO.JPG" SIZE 650, 650 LASTROW nRow

      nLinha  := 1.00
      nColuna := 18.00

      //-> Pagina
      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
         OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, , ;
         CLR_BLACK, , PAD_CENTER )

      // ETC


   ENDPAGE

   ENDPRINT

   IF DeOndePartiu = "GERARPDF"

      FWSavePreviewToPDF( oPrn )

   ENDIF

   oFont:End()
   oFontBold:End()
   oFontSubl:End()
   oFontMin:End()
   oFontSub2:End()
   oFontRua:End()

   oPen1:End()
   oPen2:End()
   oPen3:End()

RETURN NIL
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7848
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema con PDF en FWH-19.09 - Mi GATO lo solucionó !!!

Postby Cgallegoa » Mon Dec 02, 2019 8:41 pm

João gracias por tu respuesta, pero te cuento que MI GATO LO RESOLVIO :twisted:

Me levanté un minuto del escritorio, lo que mi gatito aprovechó para subirse en el teclado de mi equipo, y con una de sus paticas jodío una línea de código.

Cuando regresé, sin saber lo que el felino había hecho, compilé, corrií el programa, y funcionó bien!!!!!. Mierda, tengo duendes, fué lo primero que pensé.

Me puse a revisar código y claro, enconré que por una increíble coincidencia la patita del bendito gato se coloco sobre la tecla "/", y el cursor estaba al inicio de una línea, misma que con la "corrección" que me hizo quedó así:
Code: Select all  Expand view  RUN
///////////////////////////////////////////////////////////////////////////////////////////// nRaster := SRCAND := 8913094


Por lo que, la expresion
Code: Select all  Expand view  RUN
oPrn:SayImage( xaCoord[1] , xaCoord[2] , "Soluc02.bmp" , xaCoord[3], xaCoord[4] , nRaster)
que es la que pinta el logo se generó perfecto con un raster en"0"

Ahora mi gato es mi héroe. :D

Ya salen bien los PDF con FWH-19.09

Aunque funciona, creo que algo no está bien pues no debería haber problema con un raster tipo SRCAND,

Los expertos en gráficos y PDF de pronto me pueden orientar un poco.

Gracias nuevamente a todos ustedes y a mi gatito
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Problema con PDF en FWH-19.09 - Mi GATO lo solucionó !!!

Postby Willi Quintana » Tue Dec 03, 2019 1:57 am

Hola amigos,
Mas simple,,,
yo lo hago asi;

ImprimeImp(.f.)
If lCopiasPdf
ImprimeImp(.t.)
EndIf

return Nil

Function ImprimeImp(lPdf)

If !lPdf
PRINTER oPrn To (Impresora)
Else
PRINTER oPrn FILE "PRUEBA.PDF"
EndIf

PAGE

ENDPAGE
ENDPRINT
User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Problema con PDF en FWH-19.09 - Mi GATO lo solucionó !!!

Postby Cgallegoa » Wed Dec 04, 2019 10:06 pm

Willi, gracias por tu interés.

Ya lo solucioné. Incompatibilidad en la function AnsiToWide de xXarbour:

En PRV2PDF se invoca la función Emf2Jpeg() la cual a su vez hace un llamado a GDIPLUSEMFTOJPG de la siguiente manera:
Code: Select all  Expand view  RUN
GDIPLUSEMFTOJPG( cBuf, Len( cBuf ), AnsiToWide( cJpeg ), 5 )

Esa línea estaba generando en forma aleatoria una extensión errada al archivo jpg sobre el cual se contruye el pdf. Despues de la extensión agregaba caracteres extraños (posiblemente chino).

Lo solucioné con el siguiente cambio:
Code: Select all  Expand view  RUN
GDIPLUSEMFTOJPG( cBuf, Len( cBuf ), AnsiToWide( cJpeg + Chr(0) ), 5 )


Aparentemente funciona perfecto.

Una abrazo,
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: karinha and 60 guests