pdf - 将 Informix 文件转换为 pdf
问题描述
是否可以直接从 Informix 将文件转换为 PDF?有命令吗?如果不可能,那我该怎么办?例如:我想将文件 sm2026.4gl 转换为 PDF。
解决方案
有许多选项可供您使用。您选择什么取决于您准备投入多少时间和金钱。您准备投资的越多,您将获得更好的报告
谷歌搜索将获取文本文件并转换为 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
如图所示,您可以使用许多选项。至于你应该做什么,这取决于你的目标是什么,以及你准备投入多少时间和金钱来实现这个目标。
推荐阅读
- bpf - 使用 uBPF 打印 Hello World?
- typescript - 基于请求/响应的 rxjs WebSocketSubject 的不同类型(下一个 msg 类型,订阅 msg 类型),但只允许一个泛型
- java - 如何将子类的 LinkedList 传递给期望普通类的 LinkedList 的函数?
- sql - 协助优化地址历史表上的 SQL 表连接
- unity3d - Unity3D 2D 点光源仅适用于场景视图,但不适用于模拟器
- python - 当我将富文本格式的字符串从 Python 写入文件时,我可以重新格式化它们吗?
- c++ - 使用 Windows API 检索和设置文件详细信息?
- r - R:尝试从 DV360(双击管理器 API)获取报告,但找不到 queryId
- java - 如何更改 for 循环内的数组名称?
- google-sheets - 有没有办法安排从 Data-Studio 到 G-drive 的数据导出?