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