Generación archivos PDF

User avatar
pedroluis
Posts: 117
Joined: Sun Oct 08, 2017 12:51 pm
Location: San Luis (Capital), Argentina

Generación archivos PDF

Post 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
Pedro L. Lavallen
San Luis (Capital), Argentina
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Generación archivos PDF

Post by karinha »

Code: Select all | Expand

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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Generación archivos PDF

Post by karinha »

Ejemplo:

Code: Select all | Expand

    MsgRun( "GENERANDO UN MILLION DE ARCHIVOS...", ;
            "Por Favor, Espere! Voy Generar...  ", ;
                 { || WinExec( LLAMA_PDFS() ), 3 } )
 
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
pedroluis
Posts: 117
Joined: Sun Oct 08, 2017 12:51 pm
Location: San Luis (Capital), Argentina

Re: Generación archivos PDF

Post 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
Pedro L. Lavallen
San Luis (Capital), Argentina
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Generación archivos PDF

Post by karinha »

Pedro, debes mostrar cómo estás generando estos .PDF. Y la versión de FIVEWIN que estás usando.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
pedroluis
Posts: 117
Joined: Sun Oct 08, 2017 12:51 pm
Location: San Luis (Capital), Argentina

Re: Generación archivos PDF

Post 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
Pedro L. Lavallen
San Luis (Capital), Argentina
FiveWiDi
Posts: 1207
Joined: Mon Oct 10, 2005 2:38 pm

Re: Generación archivos PDF

Post 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.
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Generación archivos PDF

Post by karinha »

Code: Select all | Expand

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
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Generación archivos PDF

Post by karinha »

Pedro, prueba y comente el que falta, pls.

Code: Select all | Expand

// 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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
pedroluis
Posts: 117
Joined: Sun Oct 08, 2017 12:51 pm
Location: San Luis (Capital), Argentina

Re: Generación archivos PDF

Post 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.
Pedro L. Lavallen
San Luis (Capital), Argentina
FiveWiDi
Posts: 1207
Joined: Mon Oct 10, 2005 2:38 pm

Re: Generación archivos PDF

Post by FiveWiDi »

karinha wrote:

Code: Select all | Expand

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()
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
Posts: 1207
Joined: Mon Oct 10, 2005 2:38 pm

Re: Generación archivos PDF

Post 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,
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
Enrico Maria Giordano
Posts: 8728
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Generación archivos PDF

Post by Enrico Maria Giordano »

FiveWiDi wrote:Sysrefresh() = Syswait()
No, it is not. SysWait() is a loop of SysRefresh() for a given amount of time.
CARLOS ATUNCAR
Posts: 176
Joined: Thu Sep 17, 2015 11:40 pm
Location: Chincha - Peru
Contact:

Re: Generación archivos PDF

Post by CARLOS ATUNCAR »

con FastReport se genera mas practico el pdf
Carlos Atuncar - CaSoftSystem
Chincha - Perú
carlosalbatun@gmail.com
User avatar
pedroluis
Posts: 117
Joined: Sun Oct 08, 2017 12:51 pm
Location: San Luis (Capital), Argentina

Re: Generación archivos PDF

Post by pedroluis »

Si FiveWidi tiene razón,
muchas veces genera el pdf sin contenido.
¿ Que será ?
Pedro L. Lavallen
San Luis (Capital), Argentina
Post Reply