Iniciar Sesión

Ver la Versión Completa : [Herramienta] Gerar/crear "PDF RICO"


Yuri
8 de enero de 2025, 12:26
Olá amigos Coboleiros,

Necessito gerar um arquivo.pdf num servidor via linha de comando sem abrir a interface do usuário ou seja não pode ser usada uma impressora PDFCREATOR (por exemplo).

Quero integrar a minha aplicação COBOL com um servidor PHP que sempre buscará pelo arquivo.pdf em c:/apache/htdocs/sistema/arquivo.pdf.

Gostaria da indicação de vocês, pois preciso gerar um arquivo.pdf "rico" pois deverá conter bordas e imagens, trata-se de um formulário de ficha de cliente com foto.

Aguardo suas recomendações, desde já eu agradeço pela ajuda, muito obrigado.

Yuri Romanov
RM/Cobol Fujitsu Cobol
Porto Alegre/RS/Brasil

Gusaiello
8 de enero de 2025, 13:19
Hola @Yuri.
Esto lo hago en ACU Cobol, espero te sirva.


*ESTO LO USO PARA IMPRIMIR UNA FACTURA.
*PDFCREATOR COMO DESDE LÍNEA DE COMANDOS.

SPECIAL-NAMES.
copy "Word.def".
copy "pdfcreator.def".
.

WORKING-STORAGE SECTION.
77 PDF-cre handle of CLSPDFCREATOR.
77 PDF-OPT handle of CLSPDFCREATOROPTIONS.


PROCEDURE DIVISION.
IF CHOSEN-PRINTER = "PDFCreator"

*ARMO UN NOMBRE DE ARCHIVO CON LOS DATOS DE LA FACTURA

STRING NOMBRE-CLI DELIMITED BY " "
"-"
LETFAC-CRE
"-"
SUCFAC-CRE
"-"
NUMFAC-CRE
".PDF" DELIMITED BY SIZE INTO NOMBRE-ARCHIVO
END-STRING

*EL PDF SE GUARDA EN UNA CARPETA (SI NO EXISTE LA CREO EN ESTE MOMENTO)
MOVE 1 TO COPIAS
MOVE SPACES TO CARPETA-FACTURAS
STRING UNIDIR
CLIDIR
"FACTURAS" DELIMITED BY SIZE INTO CARPETA-FACTURAS
CALL "C$MAKEDIR" USING CARPETA-FACTURAS

*CONFIGURO PDFCREATOR PARA AUTOGUARDADO CON LOS DATOS : NOMBRE DE ARCHIVO Y CARPETA

create @CLSPDFCREATOR OF PDFCREATOR handle in PDF-cre
create @CLSPDFCREATOROPTIONS OF PDFCREATOR
handle in PDF-OPT
MODIFY PDF-cre, cSTART("NoprocessingAtStartup",0)
modify pdf-CRE, @cOption("Useautosave",1)

MOVE SPACES TO ADJUNTO
STRING CARPETA-FACTURAS DELIMITED BY SPACE
""
NOMBRE-ARCHIVO DELIMITED BY SIZE INTO ADJUNTO

modify pdf-CRE, @cOption("autosavedirectory",
CARPETA-FACTURAS)
modify pdf-CRE, @cOption("autosaveFilename",
NOMBRE-ARCHIVO)
modify pdf-CRE, @cOption("autosaveFormat",0)
modify pdf-CRE, @cOption("AutosaveStartStandardProgram",0)

modify pdf-CRE, @cClearCache()
END-IF.

* A partir de aca la impresión se maneja normalmente como si fuera una impresora cualquiera
* y al finalizar la impresión cierro PDFCreator y aviso al usuario.

IF CHOSEN-PRINTER = "PDFCreator"
DISPLAY MESSAGE "La factura ha sido guardada en la carpet"
"a : " CARPETA-FACTURAS H"0A"
"Con el nombre : " NOMBRE-ARCHIVO
END-IF.



** La variable ADJUNTO se usa si el .pdf se quiere enviar por correo.