Page 1 of 2

Generación archivos PDF

PostPosted: Tue Apr 30, 2024 1:35 pm
by pedroluis
Hola Gente !
Problemas de nuevo con los PFD.
Tengo que generar 1500 archivos PDF de una facturación, pero
con equipo rápido no me genera el contanido de los mismos.
Me graba el nombre, pero con contanido vacío.

do while !eof()
VTA1100PE() // Tiene que generar un archivo PDF.
// Pero lo genera vacío,
// porque es muy rápido el proceso.
// y no se como detenerlo para darle tiempo
// al sistema operativo para que lo termine bién.
// Si lo corro en una notebook viejita y lenta funciona,
// pero en un equipo un poco más rápido los genera vaciós.
skip
enddo

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 1:46 pm
by karinha
Code: Select all  Expand view

FUNCTION Main()

   WHILE( .NOT. EOF() )

      SYSREFRESH()

      HB_GCALL( .F. ) // Pruebe con .T. tambien.

      IF EOF()
         EXIT
      ENDIF

      VTA1100PE() // Tiene que generar un archivo PDF.

      // DELAY
      SYSWAIT( 3.5 ) // tu criterio.
      // O use un MsgRun() con MsgWait() desde la FUNCTION inicial..

      SKIP

   ENDDO

   HB_GCALL( .T. )

RETURN NIL
 


Regards, saludos.

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 1:56 pm
by karinha
Ejemplo:

Code: Select all  Expand view

    MsgRun( "GENERANDO UN MILLION DE ARCHIVOS...", ;
            "Por Favor, Espere! Voy Generar...  ", ;
                 { || WinExec( LLAMA_PDFS() ), 3 } )
 


Regards, saludos.

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 6:15 pm
by pedroluis
Gracias karhina por responder,
pero no me funcionan nunguna de la 2 opciones.

No creo que sea problema de memoria.
Creo que el problema es que no alcanza a grabar el pdf.

---------------------------------------------------------------------------
Pero ahora recuerdo otro problema con los PDF !!!
Cuando desde el PREVIEW pulso el botón de PDF, lo graba vacío,
pero a veces lo graba bién... ¿¿¿ ???
Tal vez ahí esté todo el problema...
Habrá algún problema con el Preview donde genera los PDF ???
---------------------------------------------------------------------------
Para visualizar los pdf uso el Edge

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 6:46 pm
by karinha
Pedro, debes mostrar cómo estás generando estos .PDF. Y la versión de FIVEWIN que estás usando.

Regards, saludos.

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 6:55 pm
by pedroluis
FiveWin for xHarbour 23.07
---------------------------

//
Do while !eof()

cPdfFile := m->xpath+"\PDF\"+strzero(99->cliente,6)+".pdf"
PRINTER oprn FILE cPdfFile
.
.
.

sele 99
skip
enddo

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 7:22 pm
by FiveWiDi
Hola Pedro,

Yo tengo exactamente el mismo problema, estoy intentando solucionarlo con SysWait( 3 ), que hace SysRefresh() durante 3 segundos, pero aun así obtengo ficheros son contenido.

Lo subiré a 5 pero no me gusta nada esta solución, en el supuesto que funcione.

A ver si a alguien se le ocurre algo.

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 7:28 pm
by karinha
Code: Select all  Expand view

FUNCTION Main()

   LOCAL oPrn

   // Pedro, ¿Cuántos dígitos devuelve este código?
   LOCAL cPdfFile := m->xpath + "\PDF\" + StrZero( 99->cliente, 6 ) + ".pdf"

   DO WHILE !Eof()

      SYSREFRESH()

      PRINTER oPrn FILE cPdfFile
      .
      .
      .

      SELE 99

      SKIP

   ENDDO

RETURN NIL

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 8:35 pm
by karinha
Pedro, prueba y comente el que falta, pls.

Code: Select all  Expand view

// C:\FWH\SAMPLES\TESTEPDF.PRG para Pedro Luis

#Include "FiveWin.ch"

FUNCTION Main()

   FIELD STREET

   LOCAL oPrn, oFont, cAlias, nLinea := 0.25

   USE Customer NEW
   GO TOP

   cAlias := ALIAS()

   PRINT oPrn PREVIEW FILE "Pedro.pdf"  // ADOBE

   // PRINT oPrn FILE "Pedro.pdf"  // Silencio directo en el archivo.pdf

      DEFINE FONT oFont NAME "Courier New" SIZE 0, - 10 BOLD OF oPrn

      oPrn:SetPortrait()

      PAGE

         WHILE( .NOT. EOF() )

            SYSREFRESH()

            IF EOF()
               EXIT
            ENDIF

            @ nLinea, 1 PRINT TO oPrn TEXT ( cAlias )->STREET SIZE 6, 9 ;
               INCHES FONT oFont

            nLinea := nLinea + .35

            IF nLinea >= 18  // +- Salto de pagina

               nLinea := .25

               ENDPAGE // Nueva pagina

               PAGE

            ENDIF

            SKIP

         ENDDO

      ENDPAGE

   ENDPRINT

   RELEASE FONT oFont

RETURN NIL

// FIN / END
 


Regards, saludos.

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 8:45 pm
by pedroluis
Tiene 6 dígitos.
Nro. clkiente = 123456.pdf

En una máquina viejita, por ser lenta funciona bien.
En una más nueva no alcanza a grabar los archivos.

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 9:14 pm
by FiveWiDi
karinha wrote:
Code: Select all  Expand view

FUNCTION Main()

   WHILE( .NOT. EOF() )

      SYSREFRESH()

      HB_GCALL( .F. ) // Pruebe con .T. tambien.

      IF EOF()
         EXIT
      ENDIF

      VTA1100PE() // Tiene que generar un archivo PDF.

      // DELAY
      SYSWAIT( 3.5 ) // tu criterio.
      // O use un MsgRun() con MsgWait() desde la FUNCTION inicial..

      SKIP

   ENDDO

   HB_GCALL( .T. )

RETURN NIL
 


Regards, saludos.


Hola Karinha,

Sysrefresh() = Syswait()

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 9:16 pm
by FiveWiDi
Hola Karinha,

Da igual que lo haga así:

PRINT oPrn PREVIEW FILE "Pedro.pdf"

que así:

PRINT oPrn FILE "Pedro.pdf"

A veces genera archivos sin contenido.

Muchas gracias,

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 9:17 pm
by Enrico Maria Giordano
FiveWiDi wrote:Sysrefresh() = Syswait()


No, it is not. SysWait() is a loop of SysRefresh() for a given amount of time.

Re: Generación archivos PDF

PostPosted: Tue Apr 30, 2024 9:47 pm
by CARLOS ATUNCAR
con FastReport se genera mas practico el pdf

Re: Generación archivos PDF

PostPosted: Wed May 01, 2024 3:16 am
by pedroluis
Si FiveWidi tiene razón,
muchas veces genera el pdf sin contenido.
¿ Que será ?