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:

Code: Select all

oApp:SetValue("showpdf", "yes")
 
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