将Informix文件转换为pdf

时间:2019-03-06 01:46:04

标签: pdf informix

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

2 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解了该问题,似乎您正在尝试获取4GL程序的PDF版本,这没有任何意义。有任意数量的free websites可以为您完成此操作。

但是,如果您要询问如何获取4GL报告以生成PDF,那将是一个非常有趣的问题。 Informix-4GL不会本机写入PDF文件。如果我没记错的话,Genero会4J,而Querix Lycia可能会。

但是,在Linux上,有一个PDF打印机驱动程序(cups-pdf),可以将报告输出为PDF文件。

这是作为练习留给读者的。 :-)

答案 1 :(得分:0)

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

  1. 在Google中搜索将采用文本文件并转换为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    
    

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