Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   RM/COBOL (https://www.cobolforo.es/forumdisplay.php?f=16)
-   -   [Herramienta] Gerar/crear "PDF RICO" (https://www.cobolforo.es/showthread.php?t=1826)

Yuri 8 de enero de 2025 12:26

Gerar/crear "PDF RICO"
 
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.

Código COBOL:
  1.   *ESTO LO USO PARA IMPRIMIR UNA FACTURA.
  2.   *PDFCREATOR COMO DESDE LÍNEA DE COMANDOS.
  3.  
  4.        SPECIAL-NAMES.
  5.                     copy "Word.def".
  6.                     copy "pdfcreator.def".
  7.                     .
  8.  
  9.    WORKING-STORAGE SECTION.
  10.        77 PDF-cre         handle of CLSPDFCREATOR.
  11.        77 PDF-OPT         handle of CLSPDFCREATOROPTIONS.
  12.  
  13.  
  14.    PROCEDURE DIVISION.
  15.            IF CHOSEN-PRINTER = "PDFCreator"
  16.  
  17.    *ARMO UN NOMBRE DE ARCHIVO CON LOS DATOS DE LA FACTURA
  18.  
  19.               STRING NOMBRE-CLI DELIMITED BY "  "
  20.                      "-"
  21.                      LETFAC-CRE
  22.                      "-"
  23.                      SUCFAC-CRE
  24.                      "-"
  25.                      NUMFAC-CRE
  26.                      ".PDF"     DELIMITED BY SIZE INTO NOMBRE-ARCHIVO
  27.               END-STRING
  28.  
  29.    *EL PDF SE GUARDA EN UNA CARPETA (SI NO EXISTE LA CREO EN ESTE MOMENTO)
  30.               MOVE 1 TO COPIAS
  31.               MOVE SPACES TO CARPETA-FACTURAS
  32.               STRING UNIDIR
  33.                      CLIDIR
  34.                      "FACTURAS" DELIMITED BY SIZE INTO CARPETA-FACTURAS
  35.               CALL "C$MAKEDIR" USING CARPETA-FACTURAS
  36.  
  37.    *CONFIGURO PDFCREATOR PARA AUTOGUARDADO CON LOS DATOS : NOMBRE DE ARCHIVO Y CARPETA
  38.  
  39.               create @CLSPDFCREATOR OF PDFCREATOR handle in PDF-cre
  40.               create @CLSPDFCREATOROPTIONS OF PDFCREATOR
  41.                                                   handle in PDF-OPT
  42.               MODIFY PDF-cre, cSTART("NoprocessingAtStartup",0)
  43.               modify pdf-CRE, @cOption("Useautosave",1)
  44.  
  45.               MOVE SPACES TO ADJUNTO
  46.               STRING CARPETA-FACTURAS DELIMITED BY SPACE
  47.                      ""
  48.                      NOMBRE-ARCHIVO   DELIMITED BY SIZE INTO ADJUNTO
  49.  
  50.               modify pdf-CRE, @cOption("autosavedirectory",
  51.                                                        CARPETA-FACTURAS)
  52.               modify pdf-CRE, @cOption("autosaveFilename",
  53.                                                          NOMBRE-ARCHIVO)
  54.               modify pdf-CRE, @cOption("autosaveFormat",0)
  55.               modify pdf-CRE, @cOption("AutosaveStartStandardProgram",0)
  56.  
  57.               modify  pdf-CRE, @cClearCache()
  58.            END-IF.
  59.  
  60.    * A partir de aca la impresión se maneja normalmente como si fuera una impresora cualquiera
  61.   * y al finalizar la impresión cierro PDFCreator y aviso al usuario.
  62.  
  63.            IF CHOSEN-PRINTER = "PDFCreator"
  64.               DISPLAY MESSAGE "La factura ha sido guardada en la carpet"
  65.                               "a : " CARPETA-FACTURAS H"0A"
  66.                               "Con el nombre : " NOMBRE-ARCHIVO
  67.            END-IF.

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


La franja horaria es GMT +2. Ahora son las 13:03.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.