Power Builder - Guardar dw en archivo PDF con PB 8.0

 
Vista:

Guardar dw en archivo PDF con PB 8.0

Publicado por Maritza (4 intervenciones) el 22/06/2006 22:21:53
Hola a todos..he leido varias preguntas y respuestas acerca de este tema y veo que ninguna he podido usarla con exito..ya que usan funciones que son solo para la version 9 o usan aplicaciones de conversion en donde no es muy transparente para el usuario.
Mi pregunta es la siguiente:
Existe alguna forma desde PB 8 de generar un archivo PDF de un dw dandole un nombre especifo ( sin impresoras virtuales en donde sale una ventana para asignarle un nombre o nombre por default)
Espero me puedan ayudar pues hasta ahora no encuentro solución a mi problema..

Gracias
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:Guardar dw en archivo PDF con PB 8.0

Publicado por Jorge (900 intervenciones) el 23/06/2006 16:47:59
Hola.

Siempre necesitaras un driver de una impresora
Adobe Distiller, pdf995

Cpio un scrip de Celso Cortes en donde elimina la caja de dialogo
quedando transparente para el Usuario.


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