Page 1 of 2
Generación archivos PDF
Posted: 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
Posted: Tue Apr 30, 2024 1:46 pm
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.
Re: Generación archivos PDF
Posted: Tue Apr 30, 2024 1:56 pm
by karinha
Ejemplo:
Code: Select all | Expand
MsgRun( "GENERANDO UN MILLION DE ARCHIVOS...", ;
"Por Favor, Espere! Voy Generar... ", ;
{ || WinExec( LLAMA_PDFS() ), 3 } )
Regards, saludos.
Re: Generación archivos PDF
Posted: 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
Posted: 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
Posted: 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
Posted: 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
Posted: Tue Apr 30, 2024 7:28 pm
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
Re: Generación archivos PDF
Posted: Tue Apr 30, 2024 8:35 pm
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.
Re: Generación archivos PDF
Posted: 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
Posted: Tue Apr 30, 2024 9:14 pm
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()
Re: Generación archivos PDF
Posted: 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
Posted: 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
Posted: Tue Apr 30, 2024 9:47 pm
by CARLOS ATUNCAR
con FastReport se genera mas practico el pdf
Re: Generación archivos PDF
Posted: Wed May 01, 2024 3:16 am
by pedroluis
Si FiveWidi tiene razón,
muchas veces genera el pdf sin contenido.
¿ Que será ?