Power Builder - Exportar un Datawindows en formato PDF

 
Vista:
Imágen de perfil de Fernando
Val: 13
Ha aumentado su posición en 2 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Exportar un Datawindows en formato PDF

Publicado por Fernando (12 intervenciones) el 06/09/2018 22:27:47
Buenas Tardes amigos de la comunidad:
Tengo un Reporte el cual necesito exportarlo en formato PDF y enviarlo por correo. Este proceso tiene que ser automático, por tal motivo necesito poder guardar el reporte en Formato PDF.

Alguien sabe como exportar un datawindows en formato PDF y guardarlo como archivo en mi disco duro ??

Gracias de antemano
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
Imágen de perfil de Fernando
Val: 13
Ha aumentado su posición en 2 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Exportar un Datawindows en formato PDF

Publicado por Fernando (12 intervenciones) el 08/09/2018 04:06:18
Buenas Noches

Descargue el proyecto pero no lo puedo ejecutar puesto que esta en 12.6
Instale gs907w64.exe y CuteWriter, para imprimir un datawindows con nombre dw_1 coloque el siguiente codigo:

1
2
3
4
5
6
7
8
9
10
string ls_pdf
integer li_res
 
ls_pdf='CutePDF Writer'
 
dw_articulos.Object.DataWindow.Export.PDF.Method = Distill!
dw_articulos.Object.DataWindow.Printer = ls_pdf //Impresora virtual CutePDF
dw_articulos.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes" //Permitir Postscript
 
li_res=dw_articulos.SaveAs("C:\cartpeta\prueba.PDF",PDF!,true)

El valor de li_res me da -1
Me exporta un archivo pdf con 0 bites
No se cual es mi error
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

Exportar un Datawindows en formato PDF

Publicado por Bunker (149 intervenciones) el 19/09/2018 15:48:34
Hola

Para exportar una dw a pdf desde power builder

Instalar el GNU GostScrip
puedes bajarlo de;
http://prdownloads.sourceforge.net/ghostscript

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 programaSybaseSharedPowerBuilderdriversADIST5.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

1
2
3
4
5
6
7
8
9
//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:ListasPresupuestos"+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

Tambien puedes utilizar el driver que trae Gostscrip
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

Exportar un Datawindows en formato PDF

Publicado por RICARDO (5 intervenciones) el 29/04/2022 05:45:10
Tengo un problema porque el archivo que tengo tiene algunas paginas en tamaño A3 Y algunas en tamaño A4, cuando guardo el archivo en PDF se distorciona lor margenes y tapan las letras de las hojas A3 como puedo hacer para que el ARCHIVO PDF SALGA DEL TAMAÑO ACTUAL TAL COMO DEBE SER.
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
sin imagen de perfil
Val: 5
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

Exportar un Datawindows en formato PDF

Publicado por Juan Manuel (8 intervenciones) el 30/05/2023 22:24:04
hola, el problema no es PowerBuilder sino Windows 10 en adelante, aparentemente no acepta la exportación de pdf desde PowerBuilder, a mi paso lo mismo cuando cambiamos las maquinas a Windows 10, me daba el error -1 que quiere decir que no se pudo exportar. Yo conseguí la forma utilizando una impresora pdf con un perfil especifico y funciona muy bien sin utilizar Ghostscript. anexo esta como configurar la impresora con el perfil.
La dirección y el nombre de la impresora, yo la coloco en un archivo.ini porque si deseas cambiar de nombre o dirección lo modifica en el .ini y no tienes que modificar el programa.

Instrucciones PowerBuilder para tomar los valores de un archivo. ini

yo lo coloco en el open del objeto aplicación y lo hago referente con variables de aplicación

is_Archivo = "nombre del archivo.ini"
is_printer1 = ProfileString(parametro1, parametro2, "_impre1","")
is_print_export = ProfileString(parametro1, parametro2, "_impre_export","")
is_dir_informe1 = ProfileString(parametro1, parametro2, "_ruta_informe1", "")
is_ruta_temp = ProfileString(parametro1, parametro2, "_ruta_temp", "")


Instrucciones para exportar el PDF

****defines las variables ****

boolean lb_exist
string ls_printer ,ls_ruta_temp,ls_ruta,ls_nombre_informe

ls_printer = nombre_aplicacion.is_print_export
ls_ruta_temp = nombre_aplicacion.is_ruta_temp
ls_ruta = nombre_aplicacion.is_dir_informe1+ ls_nombre_informe +".pdf"
dw_x.Object.DataWindow.Print.PrinterName = ls_printer // asignamos el nombre de la impresora


st_3.text = 'Exportando archivo, Favor espere...'
st_3.visible = true
dw_x.Object.DataWindow.Print.DocumentName = ls_nombre_informe
dw_x.print()
/**************************************************/
/* esperar que aparezca el archivo 3 veces */
/**************************************************/
ll_nro = 0
lb_exist = false
Do
sleep(5)
ll_nro = ll_nro + 1
lb_exist = FileExists(ls_ruta_temp+ls_nombre_informe )
Loop until lb_exist or ll_nro = 3
IF lb_exist THEN
/****************************************************/
/* movemos el archivo a la carpeta especifica */
/****************************************************/
ll_save = FileCopy (ls_ruta_temp+ls_nombre_informe ,ls_ruta,TRUE) // copiamos el archivo a la ruta especifica

If ll_save = 1 then
FileDelete(ls_ruta_temp+ls_nombre_informe ) // despues de copiado se elimina de la la ruta "temp"
else
MessageBox("Atención","No se pudo exportar el archivo, Favor intente de nuevo ")
st_3.visible = false
Return
End if
End if

Espero que te sirva.
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
Imágen de perfil de Adolfo
Val: 250
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Exportar un Datawindows en formato PDF

Publicado por Adolfo (260 intervenciones) el 30/05/2023 22:37:51
Que version de PB utilizas, porque a partir de PB 2019 (creo) es natural y no requieres impresora virtual
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
sin imagen de perfil

Exportar un Datawindows en formato PDF

Publicado por Julio (6 intervenciones) el 04/07/2023 05:14:40
Buenas noches Adolfo, te hago una pregunta. Resulta que ya generé el reporte en pdf y si lo abro desde el pc me abre bien pero lo envío por WhatsApp y lo abro desde el celular y el reporte no sale bien salen puros puntos. De pronto sabes que puede ser lo que está pasando.

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
Imágen de perfil de Adolfo
Val: 250
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Exportar un Datawindows en formato PDF

Publicado por Adolfo (260 intervenciones) el 04/07/2023 16:37:19
Lo único que se me ocurre es que dejes esperar 1 o 2 segundos desde que generas el PDF y haces el envio via WhatsApp, por cierto como haces el envio a WhatsApp ?
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
sin imagen de perfil

Exportar un Datawindows en formato PDF

Publicado por Julio (6 intervenciones) el 04/07/2023 17:17:32
Buenos dias Adolfo, gracias por tu respuesta. Te cuento genere el PDF con la opción SaveAs de la Datawindow la cual me genera el PDF de forma correcta en el PC pues abro el archivo y el reporte se ve bien pero cuando abro el archivo enviado en el celular donde deben haber datos salen puntos. Intente cambiando el dataobject para que no fuese que tuviese el objeto en uso y ese fuese el problema (No se si me entiendes) pero tampoco asi igual no recuerdo si intente lo que me dices voy a intentarlo.

Este es el código para enviar el mensaje con archivo adjunto, a mi me funciona, lo que deben tener presente es el tiempo para la función sleep ya que si es muy corto no funciona correctamente, yo use el 8.

Si no les funciona pueden hacer lo siguiente: cuando estén parados en el envio de texto de whatsapp simulen lo que quieren que el sistema haga por ejemplo TAB,TAB... hasta que lleguen a la opcion de adjunto, luego enter, luego TAB, TAB... hasta llegar a archivo, ENTER y asi sucesivamente hasta simular lo que necesitan y esa secuencia la hacen con la en la aplicación con la funcion SendKeys.

Espero me haya entendido, si no entiendes algo me puedes escribir nuevamente.

Saludos


INTEGER li_rc
OLEOBJECT loo_wapp
STRING s_comando
LONG ll_pos

loo_wapp = CREATE OLEOBJECT
li_rc = loo_wapp.ConnectToNewObject("WScript.Shell")

ll_pos = Pos(as_mensaje, " ")
DO WHILE ll_pos > 0
as_mensaje = replace(as_mensaje,ll_pos,1,"%20")
ll_pos = Pos(as_mensaje, " ")
LOOP

s_comando = 'whatsapp://send?phone=' + as_nro + '&text=' + "%20"

loo_wapp.Run(s_comando,3)

Sleep(al_tiempo)

s_comando = 'whatsapp://send?phone=' + as_nro + '&text=' + as_mensaje

loo_wapp.Run(s_comando,3)

IF al_tiempo > 0 THEN
Sleep(al_tiempo)
END IF

loo_wapp.Sendkeys('{ENTER}')
Sleep(al_tiempo)

Clipboard (as_ruta)
Sleep(al_tiempo)
loo_wapp.SendKeys('+{TAB}')
Sleep(al_tiempo)
loo_wapp.SendKeys('{ENTER}')
Sleep(al_tiempo)
loo_wapp.SendKeys('{ENTER}')
Sleep(al_tiempo)
loo_wapp.SendKeys('^{V}')
Sleep(al_tiempo)
loo_wapp.SendKeys('{ENTER}') //Para enviar
Sleep(al_tiempo)
loo_wapp.SendKeys('{ENTER}') //Para enviar
Sleep(al_tiempo)


DESTROY loo_wapp
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

Exportar un Datawindows en formato PDF

Publicado por gustavo (28 intervenciones) el 02/03/2023 14:30:27
excelente! gracias por el aporte adolfo!
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