是否可以直接从Informix将文件转换为PDF? 有命令吗?如果不可能,那我该怎么办? 例如:我想将文件sm2026.4gl转换为PDF。
答案 0 :(得分:0)
我不确定我是否正确理解了该问题,似乎您正在尝试获取4GL程序的PDF版本,这没有任何意义。有任意数量的free websites可以为您完成此操作。
但是,如果您要询问如何获取4GL报告以生成PDF,那将是一个非常有趣的问题。 Informix-4GL不会本机写入PDF文件。如果我没记错的话,Genero会4J,而Querix Lycia可能会。
但是,在Linux上,有一个PDF打印机驱动程序(cups-pdf),可以将报告输出为PDF文件。
这是作为练习留给读者的。 :-)
答案 1 :(得分:0)
有许多可用的选项。您选择什么取决于您准备投资多少时间和金钱。您准备投资的越多,获得的报告就越好
在Google中搜索将采用文本文件并转换为PDF的脚本/可执行文件。示例包括txt2pdf。这些适用于任何文本文件,因此独立于4gl。完成报告后,您将修改4gl代码以通过RUN执行此操作
编写4gl库以创建有效的PDF输出。这涉及您阅读PDF手册,以查看PDF文件中所需的结构。结果文件的第一行将以“%PDF”开头。这是很多工作,我在15到20年前就做了,除非您希望得到您的控制和独立性,否则我不会再做。
使用诸如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
使用此选项,有一些额外的配置选项可用,例如在您发现免费工具可能不提供的每个页面上添加水印/徽标
使用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
如图所示,您可以使用许多选项。至于您应该做什么,取决于您的目标是什么,以及您准备投资多少时间和金钱来实现该目标。