Page 1 of 2
BullZip PDF
Posted: Wed May 16, 2012 3:50 pm
by Antonio Martinez
Hola a todos,
Siguiendo un ejemplo de Pere Codornet he intentado SIN EXITO hacer la impresion con BullZip PDF con el codigo siguiente
Code: Select all
FUNCTION TestBullZip()
Local oApp
Local cNomPdf:= "TestBull.Pdf"
Iif(File(cNomPdf),FErase(cNomPdf),NIL)
oApp := CreateObject( "Bullzip.PDFPrinterSettings" )
oApp:LoadSettings(.F.)
oApp:SetValue("output", cNomPdf )
oApp:SetValue("showpdf", "no")
oApp:SetValue("showsaveas", "never")
oApp:SetValue("showsettings", "never")
oApp:SetValue("showprogress","no")
oApp:SetValue("showprogressfinished","no")
oApp:SetValue("confirmoverwrite","no")
oApp:SetValue("showsaveas","nofile")
oApp:WriteSettings(.T.)
PRINT oPrn ;
TITLE "vayita !!";
TO "Bullzip PDF Printer"
PAGE
oPrn:ImportWMF( "algo.wmf", .F. )
ENDPAGE
ENDPRINT
*
RETURN NIL
¿ A alguien se le ocurre qué puedo estar haciendo mal para que no me genere el TestBull.Pdf ?
Saludos
Re: BullZip PDF
Posted: Wed May 16, 2012 5:20 pm
by jll-fwh
Hola Antonio:
Si solo necesitas imprimir el PDF, puedes hacer esto: ( es un ejemplo ).
Code: Select all
FUNCTION PDF()
LOCAL cPDF := "C:\JLL1109\pMail\Pdf\01.pdf"
ShellExecute( 0, "print", cPDF,,,0 )
RETURN NIL
Para que quede mas profesional, si quieres puedes ejecutarlo en modo oculto y luego capturar la ventana Adobe Reader" para cerrarla desde el programa.
Un saludo
JLL
Re: BullZip PDF
Posted: Wed May 16, 2012 5:23 pm
by Antonio Martinez
jll,
Gracias por responder.
No, lo que necesito es generar el pdf con la impresora virtual BullZip PDF, que como comentaba no me funciona.
A ver si pudiera imprimir el pdf.
Saludos
Re: BullZip PDF
Posted: Wed May 16, 2012 9:22 pm
by RuFerSo
Hola, quizás sea esto lo que necesitas:
Printer oPrn NAME "Impresión de Clientes" to "Bullzip PDF Printer" // funciona si esta la impresora Virtual Bullzip instalada.
Saludos
Ruben Fernandez
Re: BullZip PDF
Posted: Thu May 17, 2012 7:15 am
by Antonio Martinez
Rubén,
Yo creo que eso que me comentas ya lo hace el codigo que puse, el trozo es este:
Code: Select all
PRINT oPrn ;
TITLE "vayita !!";
TO "Bullzip PDF Printer"
Gracias en cualquier caso.
Re: BullZip PDF
Posted: Thu May 17, 2012 7:46 am
by pcordonet
Hola Antonio,
A mi me funciona correctamente con este codigo:
Code: Select all
#include "fivewin.ch"
FUNCTION TestBullZip()
Local oApp
Local cNomPdf:= CURDRIVE()+":\"+Curdir()+"\TestBull.Pdf"
Iif(File(cNomPdf),FErase(cNomPdf),NIL)
SetMode(24,80)
Altd()
oUtil:= CreateObject("Bullzip.PdfUtil")
oApp := CreateObject( "Bullzip.PDFPrinterSettings" )
oApp:LoadSettings(.F.)
oApp:SetValue("output", cNomPdf )
oApp:SetValue("showpdf", "no")
oApp:SetValue("showsaveas", "never")
oApp:SetValue("showsettings", "never")
oApp:SetValue("showprogress","no")
oApp:SetValue("showprogressfinished","no")
oApp:SetValue("confirmoverwrite","no")
oApp:SetValue("showsaveas","nofile")
oApp:WriteSettings(.T.)
PRINT oPrn ;
TITLE "vayita !!";
TO "Bullzip PDF Printer"
PAGE
For n:= 1 To 800 STEP 80
oPrn:Say( n, 1, "Linia: "+Str(n) )
Next
ENDPAGE
ENDPRINT
RETURN NIL
Este codigo genera un pdf en el mismo directorio de la prueba llamado "TestBull.Pdf"
A ver si te funciona.
Pere.
Re: BullZip PDF
Posted: Thu May 17, 2012 9:56 am
by Antonio Martinez
Hola Pere,
Solucionado !
He probado tu ejemplo y me ha funcionado... he buscado la diferencia con el mio y esta en que hay que
incluir el path en el nombre del .pdf resultante.
Muchas gracias. Te debo una
Saludos
Re: BullZip PDF
Posted: Thu May 17, 2012 10:26 am
by pcordonet
Hola Antonio,
Vamos a mejorar un poco el programa, abrir el pdf después de crearlo.
Como no depende de nosotros i no sabemos cuando tardará, tenemos un fichero que existe mientras no esta creado el pdf.
Code: Select all
#include "fivewin.ch"
FUNCTION TestBullZip()
Local oApp,cRunOnce,oPrn,n
Local cNomPdf:= CURDRIVE()+":\"+Curdir()+"\TestBull.Pdf"
Iif(File(cNomPdf),FErase(cNomPdf),NIL)
oApp := CreateObject( "Bullzip.PDFPrinterSettings" )
oApp:LoadSettings(.F.)
oApp:SetValue("output", cNomPdf )
oApp:SetValue("showpdf", "no")
oApp:SetValue("showsaveas", "never")
oApp:SetValue("showsettings", "never")
oApp:SetValue("showprogress","no")
oApp:SetValue("showprogressfinished","no")
oApp:SetValue("confirmoverwrite","no")
oApp:SetValue("showsaveas","nofile")
oApp:WriteSettings(.T.)
cRunOnce:= oApp:GetSettingsFileName(.t.)
PRINT oPrn ;
TITLE "vayita !!";
TO "Bullzip PDF Printer"
PAGE
For n:= 1 To 800 STEP 80
oPrn:Say( n, 1, "Linia: "+Str(n) )
Next
ENDPAGE
ENDPRINT
// Esperando que se cree el pdf.
Do While File( cRunOnce )
Enddo
Inkey(1) // Esperamos 1 seg.
// Abrir el pdf
ShellExecute( 0, "open", cNomPdf,,,0 )
*
RETURN NIL
Pere
Re: BullZip PDF
Posted: Thu May 17, 2012 2:42 pm
by Antonio Martinez
Pere,
Si me permites, el inkey(1) lo reemplazaria por:
Code: Select all
IF File(cNomPdf)
DO WHILE h:= FOpen(cNomPdf, FO_EXCLUSIVE) <= 0
ENDDO
FClose(h)
ELSE
Inkey(1)
ENDIF
¿ Que te parece ? Se trata de no tener que esperar el segundo si el fichero ya esta disponible.
Saludos
Re: BullZip PDF
Posted: Thu May 17, 2012 3:08 pm
by Antonio Martinez
Pere,
Con la opcion:
también abre el pdf, sin necesidad de hacerlo programáticamente.
Re: BullZip PDF
Posted: Thu May 17, 2012 4:26 pm
by Antonio Martinez
Atención Pere,
He puesto el test que llevamos entre manos en la ofi de mi cliente y en el momento de generar el pdf le aparece ¡ una caja de dialogo ¡ para seleccionar impresora. ¿ Se te ocurre por qué puede estar pasando ? El cliente corre con una sesion de Terminal Server 2008 y ha instalado el BullZip PDF en su sesion. Me parecio que dijiste que BullZip funcionaba en TS.
A ver si me puedes echar una mano que no consigo imprimir pdfs ni con PdfCreator, ni con Image2Pdf y ahora parece que tampoco quiere ir el BullZip.
Gracias.
Re: BullZip PDF
Posted: Thu May 17, 2012 4:30 pm
by pcordonet
Antonio,
Seguramente el nombre de la impresora, fijate bien ( normalmente pone en sesion XXx), esto también forma parte del nombre de la impresora.
Estoy de acuerdo, el problema es cuando lo quieres guardar a algun sitio concreto, o trabajar con el archivo, necesitas saber cuando estara disponible.
de todos modos, gracias por la aclaración.
Pere
Re: BullZip PDF
Posted: Fri May 18, 2012 10:23 am
by Antonio Martinez
Pere,
Me da la sensacion que es lo que tu dices... que el nombre de la impresora no coincide... lo digo porque me pasa lo mismo con el PDFCreator.
Pero el problema es que en la lista de impresoras obtenida con GetPrinters(), el nombre de la impresora es exactamente correcto: "Bullzip PDF printer"... no hay error.
Alguna idea, porque esto me lleva loco ?
El ambiente de pruebas es Windows Terminal Server 2008.
Saludos
Re: BullZip PDF
Posted: Fri May 18, 2012 3:59 pm
by Antonio Martinez
Pere,
Parece que el problema pueda estar en lo que devuelve GetProfString( "Devices", 0 ) en ambiente Terminal Server 2008. He abierto un nuevo hilo a ver si alguien puede echar una luz.
Saludos
Re: BullZip PDF
Posted: Fri May 18, 2012 5:40 pm
by Antonio Martinez
Pere,
Finalmente pude decirle la impresora Bullzip con SetPrintDefault(); el problema ahora es que en el cliente (Terminal Server) le da un error de que no puede generar el archivo. A mi en la ofi si me lo hace bien.
Has podido tu hacer funcionar el Bullzip en Windows Terminal Server 2008 ?
Saludos