IMPRESION ARCHIVOS PDF
IMPRESION ARCHIVOS PDF
Buenos dias señores !
Otro problemita que se que ustedes trendrán la solución.
Tengo FWH 22.12
El tema es que quiero generar en PDF todas las facturas de un cliente (1600 facturas) y
las empieza a generar bien, pero cuando alcanza el núumero de factura 300 ó 400 las
siguientes las genera con pdf's vacíos.
Se me ocurrió pensar que es un problema de memoria o un uso excesivo de archivos temporales.
Es como si la memoria se quedara sin lugar y no quisiera generar más archivos.
Como si se ahogara...
Ya que estamos otra pregunta:
¿ Hay forma de regular el tamaño en bites de los pdf's generados ?,
porque a veces me los genera de distinto tamaño.
Las paso el código.
sele 99 // Archivo con todas las facturas a imprimir.
go top
xsay:="Socio: "+strzero(99->cliente,4)+" - Fac.: "+xlet+"-"+str(xemi,1)+"-"+strzero(99->numero,6)
DEFINE DIALOG oIndex TITLE "Generado Facturas en PDF" FROM 1,1 TO 3,40
@0,2 SAY oText PROMPT xsay OF oIndex COLOR CLR_HBLUE Font m->oFontFis
ACTIVATE DIALOG oIndex NOWAIT CENTER
do while !eof()
xnum:=99->numero
VTA1100PE() // Genera los pdf
sele 99
skip
xsay:="Socio: "+strzero(99->cliente,4)+" - Fac.: "+xlet+"-"+str(xemi,1)+"-"+strzero(99->numero,6)
oText:refresh()
sysrefresh()
enddo
sele 1
oIndex:End()
oDlg:End()
sysrefresh()
xtim2:=time()
msgwait(ELAPTIME(xtim1,xtim2),"Tiempo Transcurrido",4)
*-------------------
FUNCTION VTA1100PE()
*-------------------
xnum:=99->numero
cPdfFile := m->xpath+"\PDF\"+strzero(99->cliente,4)+".pdf"
PRINTER oprn FILE cPdfFile
// Acá imprime la factura.
return nil
Como siempre gracias por su atención y deferencia !
Pedro Lavallén - Argentina - San Luis
Otro problemita que se que ustedes trendrán la solución.
Tengo FWH 22.12
El tema es que quiero generar en PDF todas las facturas de un cliente (1600 facturas) y
las empieza a generar bien, pero cuando alcanza el núumero de factura 300 ó 400 las
siguientes las genera con pdf's vacíos.
Se me ocurrió pensar que es un problema de memoria o un uso excesivo de archivos temporales.
Es como si la memoria se quedara sin lugar y no quisiera generar más archivos.
Como si se ahogara...
Ya que estamos otra pregunta:
¿ Hay forma de regular el tamaño en bites de los pdf's generados ?,
porque a veces me los genera de distinto tamaño.
Las paso el código.
sele 99 // Archivo con todas las facturas a imprimir.
go top
xsay:="Socio: "+strzero(99->cliente,4)+" - Fac.: "+xlet+"-"+str(xemi,1)+"-"+strzero(99->numero,6)
DEFINE DIALOG oIndex TITLE "Generado Facturas en PDF" FROM 1,1 TO 3,40
@0,2 SAY oText PROMPT xsay OF oIndex COLOR CLR_HBLUE Font m->oFontFis
ACTIVATE DIALOG oIndex NOWAIT CENTER
do while !eof()
xnum:=99->numero
VTA1100PE() // Genera los pdf
sele 99
skip
xsay:="Socio: "+strzero(99->cliente,4)+" - Fac.: "+xlet+"-"+str(xemi,1)+"-"+strzero(99->numero,6)
oText:refresh()
sysrefresh()
enddo
sele 1
oIndex:End()
oDlg:End()
sysrefresh()
xtim2:=time()
msgwait(ELAPTIME(xtim1,xtim2),"Tiempo Transcurrido",4)
*-------------------
FUNCTION VTA1100PE()
*-------------------
xnum:=99->numero
cPdfFile := m->xpath+"\PDF\"+strzero(99->cliente,4)+".pdf"
PRINTER oprn FILE cPdfFile
// Acá imprime la factura.
return nil
Como siempre gracias por su atención y deferencia !
Pedro Lavallén - Argentina - San Luis
Pedro L. Lavallen
San Luis (Capital), Argentina
San Luis (Capital), Argentina
Re: IMPRESION ARCHIVOS PDF
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: IMPRESION ARCHIVOS PDF
Hola Karinha !
Gracias por tu respuesta, pero no es ese el problema. Voy a resumir
Estos pdf que genero son facturas de servicios, es decir con cuadros distintos tañaños
del letras, códigos de barras y código QR.
El programa genera correctamente los pdfs, pero cuando
quiero imprimir 1600 archivos.
los primeros 500 los imprime correctamente, pero a partir del 501 al 1600 empieza a generarlos mal.
Por ejemplo los primeros 500 (que genera bien) tienen un peso de 295 KB cada uno,
y los siguiente, es decir del 501 al 1600 los genera mal y tienen un peso de 2 KB cada uno.
... Parecería como que agotara la memoria...
La segunda pregunta era:
¿ Hay alguna manera de disminuir el peso (en KB) de cada PDF en el momento de generarlo ?
Es decir que el que me sale ahora de 295 KB ¿ los pueda bajar a 41 KB ?
Saludos !
Gracias por tu respuesta, pero no es ese el problema. Voy a resumir
Estos pdf que genero son facturas de servicios, es decir con cuadros distintos tañaños
del letras, códigos de barras y código QR.
El programa genera correctamente los pdfs, pero cuando
quiero imprimir 1600 archivos.
los primeros 500 los imprime correctamente, pero a partir del 501 al 1600 empieza a generarlos mal.
Por ejemplo los primeros 500 (que genera bien) tienen un peso de 295 KB cada uno,
y los siguiente, es decir del 501 al 1600 los genera mal y tienen un peso de 2 KB cada uno.
... Parecería como que agotara la memoria...
La segunda pregunta era:
¿ Hay alguna manera de disminuir el peso (en KB) de cada PDF en el momento de generarlo ?
Es decir que el que me sale ahora de 295 KB ¿ los pueda bajar a 41 KB ?
Saludos !
Pedro L. Lavallen
San Luis (Capital), Argentina
San Luis (Capital), Argentina
Re: IMPRESION ARCHIVOS PDF
Hola Pedro, debes admitir que la cantidad de PDF que has impreso es muy grande y desbordará la pila. ¿Qué tal limitar la generación por intervalos? 001 a 500 y de 501 a 1000 y de 1001 a 1500? crear un diálogo donde el usuario informa la cantidad de PDFS a generar. Y internamente si excede la cantidad permitida, lo avisas y lo bloqueas.
Solo una ideia.
Regards, saludos.
Solo una ideia.
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: IMPRESION ARCHIVOS PDF
Hola Karinha !
Gracias por tus comentarios !
y si, terminé haciendolo como vos decís, impriendo de a rangos.
De esa manera pude generarlos todos.
Gracias !
Pero me queda la otra pregunta:
Como reducir el tamaño (MBites) de los pdfs generados.
Por ejemplo: probé hacer lo mismo con el fwh2212 y con el fwh1709,
con las 2 versiones funciona, pero los pdfs que genera cada versión
tienen la mitad de MB de los pdf generados.
Gracias por tus comentarios !
y si, terminé haciendolo como vos decís, impriendo de a rangos.
De esa manera pude generarlos todos.
Gracias !
Pero me queda la otra pregunta:
Como reducir el tamaño (MBites) de los pdfs generados.
Por ejemplo: probé hacer lo mismo con el fwh2212 y con el fwh1709,
con las 2 versiones funciona, pero los pdfs que genera cada versión
tienen la mitad de MB de los pdf generados.
Pedro L. Lavallen
San Luis (Capital), Argentina
San Luis (Capital), Argentina
Re: IMPRESION ARCHIVOS PDF
Hola Pedro, la segunda pregunta, sólo el Maestro Nages puede decir si es posible. Envíale un correo electrónico con tus preguntas, ¿sí?
Regards, saludos.
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: IMPRESION ARCHIVOS PDF
Pedro como vas?
Te molesto con algo? será que nos puedes mostrar como imprimes un pdf ya generado, directo desde fw?, ya que intente de la forma que mostraste, pero no hace nada. No se si haga falta una parte del código o si usas una herramienta adicional para hacer la impresión del pdf.
De antemano gracias
Te molesto con algo? será que nos puedes mostrar como imprimes un pdf ya generado, directo desde fw?, ya que intente de la forma que mostraste, pero no hace nada. No se si haga falta una parte del código o si usas una herramienta adicional para hacer la impresión del pdf.
De antemano gracias
Code: Select all | Expand
*-------------------
FUNCTION VTA1100PE()
*-------------------
xnum:=99->numero
cPdfFile := m->xpath+"\PDF\"+strzero(99->cliente,4)+".pdf"
PRINTER oprn FILE cPdfFile //*******ESTA LINEA FUE LA QUE USAMOS******
// Acá imprime la factura.
return nil
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
Re: IMPRESION ARCHIVOS PDF
Buenas tardes Pedro, un excelente generador de PDF es la impresora VIRTUAL pdfMachine. Lo uso para imprimir pruebas (no necesito una impresora para probar los informes), pdfMachine es suficiente para mí.
Download para testes:
https://www.pdfmachine.com/pdfmachine/download/
É de pago, más simplesmente, EXCELENTE!!
Otra dica:
https://forums.fivetechsupport.com/view ... =6&t=38472
Regards, saludos.
Download para testes:
https://www.pdfmachine.com/pdfmachine/download/
É de pago, más simplesmente, EXCELENTE!!
Otra dica:
https://forums.fivetechsupport.com/view ... =6&t=38472
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: IMPRESION ARCHIVOS PDF
Puedes usar HARUPDF.lib mira como és simples:
http://www.pctoledo.com.br/forum/viewto ... =4&t=25918
Regards, saludos.
http://www.pctoledo.com.br/forum/viewto ... =4&t=25918
Code: Select all | Expand
#include "FiveWin.ch"
#include "harupdf.ch"
FUNCTION Main()
LOCAL oPdf, Page, oImage, oFont, Font1, Font2, Font3
oPdf := HPDF_New()
HPDF_SetCompressionMode( oPdf, HPDF_COMP_ALL )
//*HPDF_SetPassword( oPdf, 'jaime', 'alberto' )
page := HPDF_AddPage( oPdf )
HPDF_Page_SetSize( page, 3, 0 ) //** 3 = A4
//**oImage:=HPDF_LoadJpegImageFromFile (oPdf,'png\Qr_demo.jpg')
//**HPDF_Page_DrawImage(page, oImage, 100, 700, 100, 100)
//HPDF_Page_SetRGBFill(page, 0.80, 0.80, 0.80) //** Para rellenar
HPDF_Page_SetLineWidth( page, 0.5 ) // ** Grosor
HPDF_Page_SetRGBStroke( page, 0.2, 0.6, 1.0 ) // ** Color
HPDF_Page_Rectangle( page, 20, 760, 560, 70 )
HPDF_Page_Stroke ( page ) //** Muestra el cuadro
HPDF_Page_BeginText ( page )
Font1 := HPDF_LoadTTFontFromFile( oPdf, 'C:\Windows\Fonts\Verdana.ttf', HPDF_TRUE )
Font2 := HPDF_LoadTTFontFromFile( oPdf, 'C:\Windows\Fonts\Lucon.ttf', HPDF_TRUE )
oFont := HPDF_GetFont( oPdf, Font1, "WinAnsiEncoding" )
HPDF_Page_SetFontAndSize( page, oFont, 12 )
HPDF_Page_TextOut( page, 100, 640, "Jaime Coronado 1" )
oFont := HPDF_GetFont( oPdf, Font2, "WinAnsiEncoding" )
HPDF_Page_SetFontAndSize( page, oFont, 9 )
HPDF_Page_TextOut( page, 100, 700, "Jaime Coronado 2" )
HPDF_Page_TextOut( page, 100, 670, "Programador" )
HPDF_Page_EndText( page )
HPDF_SaveToFile( oPdf, 'Prueba.pdf' )
HPDF_Free( oPdf )
RETURN( nil )
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: IMPRESION ARCHIVOS PDF
Hola Leandro !
Si exactamente use el código como vos lo ponés.
cPdfFile := m->xpath+"\PDF\"+strzero(99->cliente,4)+".pdf"
PRINT oprn FILE cPdfFile
Saludos !
Si exactamente use el código como vos lo ponés.
cPdfFile := m->xpath+"\PDF\"+strzero(99->cliente,4)+".pdf"
PRINT oprn FILE cPdfFile
Saludos !
Pedro L. Lavallen
San Luis (Capital), Argentina
San Luis (Capital), Argentina
- nageswaragunupudi
- Posts: 10691
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: IMPRESION ARCHIVOS PDF
Yes, using HaruPDF reduces the size of PDF.
For using HaruPDF , you do not need to change any code or write any extra-code.
Please do NOT do that.
Only two changes you need to make:
All PDFs will now be created using HaruPDF.
Do not make any other changes or add any new code in your software.
Keep your present function:
as it is without any changes.
For using HaruPDF , you do not need to change any code or write any extra-code.
Please do NOT do that.
Only two changes you need to make:
Code: Select all | Expand
#inclucde "fivewin.ch"
REQUEST FWHARU // add this here
function Main()
TPrinter():lUseHaruPDF := .t.
Do not make any other changes or add any new code in your software.
Keep your present function:
Code: Select all | Expand
*-------------------
FUNCTION VTA1100PE()
*-------------------
xnum:=99->numero
cPdfFile := m->xpath+"\PDF\"+strzero(99->cliente,4)+".pdf"
PRINTER oprn FILE cPdfFile
// Acá imprime la factura.
return nil
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: IMPRESION ARCHIVOS PDF
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: IMPRESION ARCHIVOS PDF
Thanks Mr. Rao
Utilizo LUCIDA CONSOLE para el detalle con cantidades, en la vista previa muestra correcto y en el PDF movido.
He intentado con COURIER NEW muestra bien en el PDF pero es muy claro.
Quizas haya otro FONT que se pueda usar
With Haru it is faster and smaller, but the FONTs are distorted.
I use Lucida Console for the detail with quantities, in the preview it shows correct and in the PDF it moved.
I have tried COURIER NEW it shows fine in the PDF but it is very clear.
Maybe there is another FONT that can be used.
Thanks for the help
Con Haru es mas rápido y mas pequeño, pero los FONTs se distorcionan.nageswaragunupudi wrote:Yes, using HaruPDF reduces the size of PDF.
For using HaruPDF , you do not need to change any code or write any extra-code.
Please do NOT do that.
Only two changes you need to make:All PDFs will now be created using HaruPDF.Code: Select all | Expand
#inclucde "fivewin.ch" REQUEST FWHARU // add this here function Main() TPrinter():lUseHaruPDF := .t.
Do not make any other changes or add any new code in your software.
Keep your present function:as it is without any changes.Code: Select all | Expand
*------------------- FUNCTION VTA1100PE() *------------------- xnum:=99->numero cPdfFile := m->xpath+"\PDF\"+strzero(99->cliente,4)+".pdf" PRINTER oprn FILE cPdfFile // Acá imprime la factura. return nil
Utilizo LUCIDA CONSOLE para el detalle con cantidades, en la vista previa muestra correcto y en el PDF movido.
He intentado con COURIER NEW muestra bien en el PDF pero es muy claro.
Quizas haya otro FONT que se pueda usar
With Haru it is faster and smaller, but the FONTs are distorted.
I use Lucida Console for the detail with quantities, in the preview it shows correct and in the PDF it moved.
I have tried COURIER NEW it shows fine in the PDF but it is very clear.
Maybe there is another FONT that can be used.
Thanks for the help
Saludos,
Adhemar C.
Adhemar C.
Re: IMPRESION ARCHIVOS PDF
Adhemar, COURIER NEW BOLD es la mejor manera de ahorrar (gastar menos) tinta/tóner de impresora.
Regards, saludos.
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341