Power Builder - Grabar dw a pdf

 
Vista:

Grabar dw a pdf

Publicado por GUILLERMO (12 intervenciones) el 20/09/2006 06:40:31
Hola quisiera saber como grabar un datawindow al formato pdf.

Hice una funcion usando el metodo distiller, pero no resulta.

por favor si pudieran ayudarme se los agardeceria mucho.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Grabar dw a pdf

Publicado por Jorge (900 intervenciones) el 20/09/2006 15:16:38
Hola
No dices que Version de PB tienes
Aqui te paso suponiendo que tienes la 9 o Superior
Para exportar una dw a pdf
Instalar el GNU GostScrip
puedes bajarlo de;
http://prdownloads.sourceforge.net/ghostscript
la version actual es la 8.53

Tienes que tener instalado el Driver de la impresora AdobeDistiller
Se deberia autoinstalar al generar tu primer export
Si asi no lo hiciera lo puedes instalar a mano bajando el driver de:
http://www.adobe.com/support/downloads/detail.jsp?ftpID=1508

o cualquier otro driver que realize esta funcion por ejemplo uno
muy bueno y es free el pdf995s

O tambien la Instalacion de PB te deja el driver en
C:\Archivos de programa\Sybase\Shared\PowerBuilder\drivers\ADIST5.INF

Si instalas manualmente la impresora y vas a utilizar el saveas
debes cambiar el nombre de la impresora que se te creo por
Sybase DataWindow PS

Tambien puedes usar el metodo distiller

//Metodo Distiller
Int li_resp
String Nombre_Fichero
dw_presupuesto.Object.DataWindow.Export.PDF.Method = Distill!
dw_presupuesto.Object.DataWindow.Printer = "Sybase DataWindow PS"
//dw_presupuesto.Object.DataWindow.Printer = "Acrobat Distiller"
dw_presupuesto.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes"
nombre_fichero = "C:\Listas\Presupuestos\"+sle_cliente.text+".pdf"
li_resp=dw_presupuesto.SaveAs(nombre_fichero, PDF!, true)

alli puedes fijarte donde asignas la printer con este metodo
podes directamente colocar el nombre creado por ejemplo
"Acrobat Distiller"

Por ultimo debes hacer algo que por alli PB no lo hace
el de reconocer la ruta donde esta el Gostscrip
lo mas sencillo... de la carpeta Arch de Prog/gs/bin
todo su contenido al System32


Saludos
y Comentanos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

RE:Grabar dw a pdf

Publicado por GUILLERMO (12 intervenciones) el 20/09/2006 17:56:12
Hola

Lei la solucion que propusiste e hice una funcion:

public function integer of_saveas (ref datawindow adw_data);string ls_path, ls_file, ls_ext, ls_savetype
int li_rc,li_resp

ls_savetype ="Portable Document Format (*.pdf),*.pdf,"+&
"Archivo Excel (*.xls),*.xls,"+&
"Archivo HTML (*.htm), *.htm,"+&
"Archivo XML (*.xml), *.xml,"+&
"Archivo DBF (*.dbf),*.dbf,"+&
"Archivo Texto (*.txt),*.txt,"+&
"Archivo Delimitado por comas (*.csv),*.csv,"+&
"Archivo de 123 (*.wk1), *.wk1,"+&
"Reporte de Powerbuilder (*.psr), *.psr"

li_rc = GetFileSaveName ( "Guardar Como...", &
ls_path, ls_file, "PDF",ls_savetype, "", &
32770)
IF li_rc = 1 Then
ls_ext = Right(ls_file,3)
CHOOSE CASE UPPER(ls_ext)
CASE "PDF"
//Metodo Distiller
adw_data.Object.DataWindow.Export.PDF.Method = Distill!
adw_data.Object.DataWindow.Printer = "Sybase DataWindow PS"
adw_data.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes"
ls_file = ls_path
li_resp = adw_data.SaveAs(ls_file, PDF!, true)
CASE "HTM"
li_resp = adw_data.SaveAs(ls_file, HTMLTABLE!, true)
CASE "DBF"
li_resp = adw_data.SaveAs(ls_file, dBase3!, true)
CASE "XML"
li_resp = adw_data.SaveAs(ls_file, XML!, true)
CASE "XLS"
li_resp = adw_data.SaveAs(ls_file, Excel8!, true)
CASE "PSR"
li_resp = adw_data.SaveAs(ls_file, PSReport!, true)
CASE "CSV"
li_resp = adw_data.SaveAs(ls_file, CSV!, true)
CASE "TXT"
li_resp = adw_data.SaveAs(ls_file, Text!, true)
CASE "WK1"
li_resp = adw_data.SaveAs(ls_file, WK1!, true)

END CHOOSE
END IF
MessageBox(n_cst_application.gstr_app.nombreapp,"Se generó Archivo en:"+&
"~r~n"+ls_path,Exclamation!)
RETURN li_resp
end function

Hasta alli todo bien, la exportacion es satisfactoria para todos los formatos pero para el PDF al momento de ver el archivo creado este tiene 0 Bytes de tamaño, cual es el problema, estoy usando el metodo distiller y veo en el panel de impresoras la creacion de la impresora Sybase DataWindow PS pero aun asi no se genera el archivo.

Espero me ayudes por favor, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por Jorge (900 intervenciones) el 20/09/2006 19:12:23
Hola

Suele ser , como comentaba en el post anterior
Que PB no encuentra el path gost

Copia todo el contenido de la carpeta Bin al
system32

Comentanos..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por Jorge (900 intervenciones) el 20/09/2006 19:18:25
Hola Olvide mencionarte

Que tambien puedes usar la misma funcion de Pb
dw_1.SaveAs() y te mostrara el cuadro de dialogo para elegir
el formato.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por GUILLERMO (12 intervenciones) el 21/09/2006 03:12:47
HOLA

COPIE LOS ARCHIVOSS DE LA SGTE RUTA AL SYSTEM32

"C:\Archivos de programa\gs\gs8.50\bin\"
LOS ARCHIVOS SON

gsdll32.dll
gsdll32.lib
gswin32.exe
gswin32c.exe

hice la prueba nuevamente con resultados negativos, habre bajado la version correcta del Ghostscript??.
La version que uso de powerbuilder es 10.5

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por Jorge (900 intervenciones) el 21/09/2006 16:47:59
Hola

Es correcto el gost no tiene problemas hay unas vers mas nuevas
pero no afectarian.

Revee los drivers impresora y realiza una prueba directamente
con la funcion SaveAs()

Te pregunto, esto te sucede en tu PC de desarrollo donde tienes
instalado PB ?? o en otra ??

Si es en la que tienes PB si eliminas el Drivers se deberia crear
sola de nuevo

Prueba y comenta no suele ser otra cosa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por Daniel (4 intervenciones) el 06/08/2010 22:21:03
A mi me sucede el mismo problema, se genera el pdf con 0kb, estoy usando el PB10.5 y la version de Ghostscript 8.71, ya copie el contenido de la carpeta bin en el system32 y nada, he colocado como impresoras en el datawindow tanto el 'PDF995' el cual instalé y el 'Sybase DataWindow PS' y tampoco nada, por favor ayuda... cabe mencionar que el saveas me devuelve -1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por Alejandro (1 intervención) el 17/01/2007 22:09:39
Baja de este link http://www.pdf995.com/download.html

Pdf995 Printer Driver Version 8.0s* y Free Converter • Version 1.1 con estos ya debes de poder grabar en PDF yo hice de esa manera y funciona, la impresora la instala como PDF995 y con ese nombre la llamas.

dw.Object.DataWindow.Printer = "PDF995"

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por Harold Castellanos Asmat (5 intervenciones) el 06/06/2008 19:58:34
hola amigos; tenia casi el mismo problema, pero probando y probando, veia codigos bastantes largos, asi que pense en cortar un poco me ha salido la solucion y me parece bastante simple y funciona ahora:
primero utilizo el CutePDF Writer como impresora virtual y el convertidor que se en mi caso fue un programita que se llama GPL Ghostscript 8.15

//caso: hacer un pdf d de un pedido

//Metodo Distiller
Int li_resp

String Nombre_Fichero, prov
//bueno aqui capturo el nombre del proveedor a quien se le hace un pedido
//de un datawindows donde antes ya le hice un retrieve y este dw se llama
//dw_rep_imp (reporte_impresion) son nombres medios monses que uso

prov= dw_rep_imp.object.proveedor_pv_razonsocial[dw_rep_imp.getrow()]

dw_rep_imp.Object.DataWindow.Export.PDF.Method = Distill!
dw_rep_imp.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes"
dw_rep_imp.Modify("datawindow.Export.PDF.Method = '1'")
dw_rep_imp.Modify("datawindow.Export.PDF.xslfop.print=no")

//como capture el nombre del proveedor genero el nombre del archivo con el
//nombre del proveedor y lo hago asi
//dw_rep_imp.SaveAs("C:pedidos"+prov+".pdf", PDF!, true)

//pero si quiero asignarle un nombre diferente lo hago así, ya ustedes escojan
dw_rep_imp.SaveAs()

suerte;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por Harold Castellanos Asmat (5 intervenciones) el 07/06/2008 19:06:19
siguiendo con las pruebas, justo por que en otra maquina nno funcionotube que seguir averiguando, pero me salio algo mas sencillo y funciona incuso lo prober en otras maquinas
teniendo instalado,CutePDF Writer como impresora virtual y el convertidor GPL Ghostscript 8.15 , lo unico que hice
printsetup() /// te pedira que selecciones la impresora en la que desea imprimir
dw_rep_imp.print()

//y listo te saldra primero la pantallita para que se lecciones la impresora ,escoges la impresora virtual (incluso teniendo como predeterminada una impresora fisica o de red) de ahi te cargara el programita convertor para que ingrese el nombre del archivo, seleccionas la extencion del archivo ( .pdf) y listo ya tienes el pdf generado,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por katy molina (1 intervención) el 11/06/2008 20:13:34
seria lo mismo... trabajar esto para un server en linux..?? estoy haciendo una prueba con este codigo si me funciona bien para un server window... pero en linux... no funciona.. nose si hace falta algo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por martuky (5 intervenciones) el 11/09/2008 09:59:49
Hola a todos, he probado el primer código y me funciona correctamente, pero me están pidiendo que utilice el command line de acrobat distiller y que si es posible no tener que instalar el gostcript. Es decir con el Acrobat a pelo... ¿alguien me puede ayudar? Muchas gracias por adelantado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por Carlos Alvarez (1 intervención) el 31/07/2013 07:22:56
Harold, buenas noches

Hice lo mismo y jalo.

Muchas gracias.

Saludos desde el Perú, pero soy Mexicano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Grabar dw a pdf

Publicado por Mariano Galindo (1 intervención) el 24/11/2011 19:49:40
Perdon la demora en años .... pero esta SI es la solucion !,... muchas gracias !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Al Grabar dw a pdf me marca error -1 ----

Publicado por Billy H (1 intervención) el 23/12/2018 02:48:39
Buenos dias, tengo este problema ... al grabar un dw a pdf ... si lo puedo hacer ... cuando son pocas paginas ...

Cuando es un archivo digamos de 80 paginas carta me empieza a marcar error -1

Me pudieran apoyar para documentarme sobre este error??

La rutina para grabar el dw es:

1
2
3
4
5
dw_reporte.Object.DataWindow.Export.PDF.Method = XSLFOP!
dw_reporte.Object.DataWindow.Export.PDF.xslfop.print="No"
messagebox('pdf',gs_path_exportar + ls_nombre + is_extension)
li_resultado = dw_reporte.SaveAs(gs_path_exportar + ls_nombre + is_extension, PDF!, true)
messagebox('pdf',gs_path_exportar + ls_nombre + is_extension)

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar