BullZip PDF

BullZip PDF

Postby Antonio Martinez » Wed May 16, 2012 3:50 pm

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  Expand view

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
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Re: BullZip PDF

Postby jll-fwh » Wed May 16, 2012 5:20 pm

Hola Antonio:

Si solo necesitas imprimir el PDF, puedes hacer esto: ( es un ejemplo ).
Code: Select all  Expand view
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
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: BullZip PDF

Postby Antonio Martinez » Wed May 16, 2012 5:23 pm

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
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Re: BullZip PDF

Postby RuFerSo » Wed May 16, 2012 9:22 pm

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
RuFerSo
 
Posts: 55
Joined: Mon Feb 20, 2012 2:56 pm

Re: BullZip PDF

Postby Antonio Martinez » Thu May 17, 2012 7:15 am

Rubén,


Yo creo que eso que me comentas ya lo hace el codigo que puse, el trozo es este:

Code: Select all  Expand view

PRINT oPrn ;
      TITLE "vayita !!";
      TO "Bullzip PDF Printer"
 


Gracias en cualquier caso.
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Re: BullZip PDF

Postby pcordonet » Thu May 17, 2012 7:46 am

Hola Antonio,

A mi me funciona correctamente con este codigo:
Code: Select all  Expand view

#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.
pcordonet
 
Posts: 111
Joined: Sat Jan 30, 2010 8:35 am
Location: Girona

Re: BullZip PDF

Postby Antonio Martinez » Thu May 17, 2012 9:56 am

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
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Re: BullZip PDF

Postby pcordonet » Thu May 17, 2012 10:26 am

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  Expand view


#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
pcordonet
 
Posts: 111
Joined: Sat Jan 30, 2010 8:35 am
Location: Girona

Re: BullZip PDF

Postby Antonio Martinez » Thu May 17, 2012 2:42 pm

Pere,

Si me permites, el inkey(1) lo reemplazaria por:

Code: Select all  Expand view

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
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Re: BullZip PDF

Postby Antonio Martinez » Thu May 17, 2012 3:08 pm

Pere,

Con la opcion:
Code: Select all  Expand view

oApp:SetValue("showpdf", "yes")
 


también abre el pdf, sin necesidad de hacerlo programáticamente.
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Re: BullZip PDF

Postby Antonio Martinez » Thu May 17, 2012 4:26 pm

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.
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Re: BullZip PDF

Postby pcordonet » Thu May 17, 2012 4:30 pm

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
pcordonet
 
Posts: 111
Joined: Sat Jan 30, 2010 8:35 am
Location: Girona

Re: BullZip PDF

Postby Antonio Martinez » Fri May 18, 2012 10:23 am

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
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Re: BullZip PDF

Postby Antonio Martinez » Fri May 18, 2012 3:59 pm

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
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Re: BullZip PDF

Postby Antonio Martinez » Fri May 18, 2012 5:40 pm

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
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 63 guests