【发布时间】:2015-12-10 16:47:18
【问题描述】:
我正在维护一个使用 Delphi 5 构建的旧应用程序。 我需要确定给定 pdf 文件中的总页数。
我想我也可以为纯 C 翻译任何解决方案。
我目前的解决方案是分叉一个 pdftk 进程,并解析它的输出。但这很慢,所以我想知道是否可以为delphi(5 ...)找到一个好的开源pdf解析器库......而且它似乎不存在。
所以我尝试实现诸如查看文件的原始内容以查找“/Type /Page”或“/Count”或“Linearized ... /N”的出现。但是这些方法——也不是它们的组合——在每种情况下都不起作用。
所以我想知道是否可以从 Delphi 5 中找到一个可以使用的开源 DLL。但我也找不到。我偶然发现了 iTextSharp,但它适用于 .NET,我不明白如何在普通的 delphi5 程序中使用它...
所以我最后的想法是:我能找到-say- pdftk 的源代码并将其编译为DLL 吗?谁能指出我正确的方向?
有什么我缺少的解决方案吗?
提前感谢您的帮助!
【问题讨论】:
-
您的机器上安装了 Adobe Acrobat 吗?
-
你检查过这个PDF Page Count Algorithm 吗?
-
@MartynA :至少安装了 Adobe Acrobat Reader,是的。
-
好吧,有了完整的 Acrobat,您可以使用自动化功能将 Pdf 加载到其中,并像在 Acrobat 中使用其 GUI 一样在代码中对其进行操作。获取页数是微不足道的。自从我使用 Acrobat Reader 自动化以来已经有一段时间了。您可以尝试将其类型库导入 Delphi 并查看一下 - 我肯定在大约 10 年前将它与 D5 一起使用过。
-
@fantaghirocco 我刚刚尝试了您的源代码,它看起来非常符合我的要求。但是我得到了与我自己的实现相同的错误页码......例如,我有一个提到
标签: delphi pdf pdf-parsing