首页 > 解决方案 > 将 Informix 文件转换为 pdf

问题描述

是否可以直接从 Informix 将文件转换为 PDF?有命令吗?如果不可能,那我该怎么办?例如:我想将文件 sm2026.4gl 转换为 PDF。

标签: pdfinformix

解决方案


有许多选项可供您使用。您选择什么取决于您准备投入多少时间和金钱。您准备投资的越多,您将获得更好的报告

  1. 谷歌搜索将获取文本文件并转换为 PDF 的脚本/可执行文件。示例包括 txt2pdf。这些适用于任何文本文件,因此独立于 4gl。您将修改您的 4gl 代码以在完成报告后立即通过 RUN 执行此操作

  2. 编写 4gl 库以创建有效的 PDF 输出。这涉及您阅读 PDF 手册以查看 PDF 文件中所需的结构。结果文件的第一行将以“%PDF”开头。这是很多工作,我在 15 到 20 年前做过,除非你想要这给你的控制和独立性,否则我不会再做。

  3. 使用 FourJs Genero 等产品,您可以使用现有的 4gl 代码直接创建 PDF 报告。在最简单的情况下,这涉及在您的 START REPORT 之前添加几行并保持 REPORT 语句不变。该报告将使用等宽字体并且看起来像您现有的报告,只是它是 PDF 而不是 TXT 文件。

    IF fgl_report_loadCurrentSettings(NULL) THEN -- simple compatibility mode
        CALL fgl_report_selectDevice("PDF")      -- indicates PDF 
        ...  -- optional calls to indicate filename, paper, printer and other options if required
        LET grw = fgl_report_commitCurrentSettings()
    
        START REPORT report-name TO XML HANDLER grw
    

使用此选项有一些额外的配置选项可用,例如在您找到的免费工具可能无法提供的每个页面上添加水印/徽标

  1. 使用 FourJs Genero Report Writer 的功能更丰富的选项包括从您的 4gl 代码中去除任何布局信息,并在所见即所得的设计器中设计报告的布局。您从数据库中收集数据的 4gl 代码和制定输出的函数没有受到影响。REPORT 语句不再需要 COLUMN 10、SKIP TO TOP OF PAGE 等布局信息,并且可以将其删除。报表的所见即所得设计控制布局,包括字体、字体属性、定位、分页符、页码、图像等全部属性。所以你的 4gl 代码变成

    -- Report
    -- No layout information in report, only need to gather and formulate data
    REPORT report-name ...
        BEFORE GROUP OF invoice
            PRINT invoice.*       
        ON EVERY ROW
            PRINT invoice_line.* 
        AFTER GROUP OF invoice
            LET invoice_total.net = GROUP SUM(...)
            PRINT invoice_total.* 
    END REPORT
    ...
    -- Produce report 
    IF fgl_report_loadCurrentSettings("reportdesign.4rp") THEN -- load the WYSIWYG design
        CALL fgl_report_selectDevice("PDF")      -- indicates PDF 
        ...  -- calls to indicate filename, paper, printer and other options if required
        LET grw = fgl_report_commitCurrentSettings()
    
        START REPORT report-name TO XML HANDLER grw    
    

如图所示,您可以使用许多选项。至于你应该做什么,这取决于你的目标是什么,以及你准备投入多少时间和金钱来实现这个目标。


推荐阅读