Power Builder - Exportando a PDF en PB 10 eval version

 
Vista:

Exportando a PDF en PB 10 eval version

Publicado por Daniel Rodas (7 intervenciones) el 25/04/2007 19:39:25
Saludos.
Talvez alguno de ustedes pueda ayudarme. Tenemos instalada la version 10.2 de pb para probar si se puede exportar un reporte a pdf. EL hecho es que al decirle Guardar como...(save as...) y darle formato PDF no me guarda nada.

¿Sera que por ser una version de evaluacion no permite guardar en formato pdf?
Todo el problema es porque queremos exportar unos reportes a un archivo, incluido el formato de los encabezados y los totales de los computed fields pero eso en la version 7 que es la que tenemos oficialmente, no deja hacerlo sino que solo exporta sin formato y eso no nos sirve.

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

RE:Exportando a PDF en PB 10 eval version

Publicado por Jorge (900 intervenciones) el 26/04/2007 13:50:22
Hola
dw a pdf desde la Vers 9 en adelante
Para exportar una dw a pdf
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 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

Para versiones anteriores a la 9
s/ scrip de Celso Cortes

Gerando um Adobe PDF sem caixa de dialogo no Win 9x, ME, NT, 2000 e XP




Verifiquei que esta é uma dúvida de muitos desenvolvedores, não só em PB, mas este espaço se destina ao PowerBuilder então os exemplos de script só valem para o PB,
mas as dicas servem para qualquer desenvolvedor.

Primeiro :

Para se gerar um PDF, você deve ter um utilitário para isto, exitem muitos, não só os da Adobe®, embora todos utilizem os drives do Adobe Acrobat®,
proprietária da tecnologia PDF(Portable Documment Format).

Aqui na PowerBuilder você pode baixar o GERAPDF para Win 9x ou baixar o PDF995 para todos os sistemas MS Windows®

O "X" desta questão é que ao se gerar um PDF, um "prompt" da impressão aparece pedindo o nome do arquivo PDF e o seu diretório destino,
o que se torna muito deselegante para um sistema corporativo e confuso para um usuário leigo, além de provocar erros por atribuição de nomes impróprios para o aplicativo.

Para solucionar este problema, uma solução simples existe, mas não é divulgada pela Adobe® nem por desenvolvedores dos pacotes de configuração e geração de PDF.

O fim do mistério, são duas soluções uma para Win9x e ME e outra para NT, 2000 e XP.

Para Win9x e ME

Basta escrever no arquivo pdfwritr.ini que se encontra na windows/system os parâmetros de impressão, toda vez que o drive do PDF acha o nome do arquivo a ser gerado
nos parâmetros do pdfwritr.ini a caixa de dialogo é suprimida.

Os parâmetros são :

[Acrobat PDFWriter]
PDFFILENAME="PATH_COMPLETA_ONDE_SERA_GERADO_O_PDF.PDF"

Apenas esta linha é o suficiente para suprimir a caixa de dialogo da impressão, existem outros parâmetros de configuração como tamanho da página, autor, nome do produto,
nome do documeto etc, em breve todos os parâmetros estaram disponiveis aqui na PowerBuilder.

Para o NT, 2000 e XP.

No NT, 2000 e XP, deve-se escrever nos REGISTROS, pôs este sistemas se configuram pelos registros e não por arquivos tipo .INI .

Você terá que escrever na HKCU\Software\Adobe\Acrobat PDFWriter onde ( HKCU = HKEY_CURRENT_USER ).

Escreva : HKCU\Software\Adobe\Acrobat PDFWriter\PDFFileName

Para ficar mais fácil, segue uma rotina genérica para todos os sistemas.

[ PowerScript]
Crie uma função e coloque este código, passe como parâmetro a path completa do arquivo a ser gerado tipo : C:\SISTEMA\PAGAMENTO\FOLHA.PDF, aqui vamos chamar de path_pdf.

//////////////////////////////////////////////////////////////////
//Rotina para geração de PDF
// Entrada : path_pdf Caminho completo aonde será criado o PDF
// Saída : Return THRU se tudo ocorreu bem / False caso erro
////////////////////////////////////////////////////////////////
environment wk_sis

GetEnvironment (wk_sis)

CHOOSE CASE wk_sis.OsType

CASE WindowsNT!

IF RegistrySet("HKEY_CURRENT_USER\Software\Adobe\Acrobat PDFWriter", "PDFFileName", RegString!, path_pdf) = -1 THEN
RETURN FALSE
END IF

IF RegistrySet("HKEY_CURRENT_USER\Software\Adobe\Acrobat PDFWriter", "bExecViewer", RegString!, "0") = -1 THEN
RETURN FALSE
END IF

IF RegistrySet("HKEY_CURRENT_USER\Software\Adobe\Acrobat PDFWriter", "bDocInfo", RegString!, "0") = -1 THEN
RETURN FALSE
END IF

CASE Windows!

IF SetProfileString("PDFWRITR.INI", "Acrobat PDFWriter", "PDFFileName", path_pdf) <> 1 THEN
RETURN FALSE
END IF

IF SetProfileString("PDFWRITR.INI", "Acrobat PDFWriter", "bExecViewer", "0") <> 1 THEN
RETURN FALSE
END IF

IF SetProfileString("PDFWRITR.INI", "Acrobat PDFWriter", "bDocInfo", "0") <> 1 THEN
RETURN FALSE
END IF

CASE ELSE
RETURN FALSE
END CHOOSE

RETURN TRUE
/////////////////////////////////////////////////////////////

Com estes parâmetros acima teremos a geração de um arquivo PDF.

Saludos desde Argentina
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:Exportando a PDF en PB 10 eval version

Publicado por DAniel Rodas (7 intervenciones) el 26/04/2007 16:00:19
Muchas gracias, voy a probar el tip.
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