14

CPAN 上有很多与 .pdf 文件的创建和操作相关的模块,我希望这个社区可以为我节省一些走上死胡同的时间。

我希望从头开始创建 .pdf 文件,只有简单的格式,例如粗体/斜体和左/右/中心对齐。从 MVC 的角度来看,能够使用模板文件会很好,但如果最好的模块不支持,我没关系。我想要针对我的狭窄问题集的最佳模块。

编辑:让我们添加它必须是 Perl 模块的约束,如果不是纯 perl 解决方案。感谢您迄今为止的回答!

更新:PDF 创建是决定如何处理的一个难题。除了这里的好建议之外,似乎还有大约 1,000 种不同的方法可以解决这个问题,而知道将时间投入到哪些解决方案上是一个真正的挑战。在构建这个解决方案的过程中很容易获得对外部可执行文件的依赖,这就是为什么我一直倾向于尽可能在 Perl 中做所有事情。

我尝试使用 PDF::Create 但发现它太局限了。您必须给出坐标来放置每个文本字符串,并且没有内置的文本换行概念......这就是您必须做的所有工作。我的任务不可能的开销。

我现在使用的是 PDF::API2,它比 PDF::Create 功能强大得多,但仍然要求 PDF 以令人不安的低级别组装。幸运的是,网上有一些帮助。请参阅Rick Measham 出色的 PDF::API2 教程以及随附的 text_block() 子例程,幸运的是,它解决了文本换行问题。

除非您在这里看到另一个更新,否则这是最终为我工作的解决方案。

4

6 回答 6

7

我是 CPAN 模块CAM::PDF的作者,它绝对不是这项工作的最佳工具——它是为高性能编辑而不是创建而设计的。

在免费的 PDF 创建库中,我最喜欢 PDF::API2。它具有非常丰富的功能集和良好的加密支持(灵感来自我可能添加的 CAM::PDF!)作者 Alfredo 管理着一个流行的电子邮件列表。人们有时会抱怨文档,但我发现它已经足够了。

在商业图书馆中,我对 pdflib 有很好的经验。

于 2009-02-18T06:28:54.863 回答
6

我想到了三个用于创建 PDF 的模块(没有特别的顺序)......

PDF::Template 为您提供了您可能渴望的模板选项?PDF::Create 似乎更直接(至少从文档中)并且可能更充分地满足您的“简单格式”要求。

但是,如果您想知道“社区”的想法,那么只有 PDF::API2 获得了CPAN 评级的评级,总分为 5 星 中的 4 星

希望有帮助。

PS。免责声明:我没有使用任何这些模块。过去,我一直使用Apache FOP来使用 XML/XSLT/XSL-FO ,而 Perl 则用于创建初始 XML 数据。如果您想将 PDF 生成嵌入到您的 Perl 应用程序中,这对于一些小东西来说可能是一种过度杀伤,而且并不总是理想的。

聚苯乙烯。因此,我还将在不久的将来某个时候查看这些 CPAN PDF 模块!

于 2009-02-17T15:02:24.560 回答
5

它必须是 Perl 模块吗?您总是可以使用 LaTeX 并将其转换为 PDF。不是很直接,但它是另一种选择。

于 2009-02-17T13:43:30.007 回答
2

G'day马库斯,

很高兴你找到了教程。我在 PDF::API2 中做了很多工作,所以如果有什么我可以帮忙的,请告诉我。

当然,我推荐 PDF::API2!

有一个人 Jay Hannah,他目前正在将文本块转换为 CPAN 的模块,该模块完全符合您的要求:粗体、斜体等。如果您查看邮件列表,您会在顶部看到他的帖子。

干杯!

里克·米沙姆

于 2009-04-02T12:14:14.367 回答
0

是的,如果不确切知道您的限制是什么,很难回答。如果纯 Perl 不是必需品,我会倾向于DocBook

您将生成的初始标记可以是非常简单的 XML;并且这种转换只需要一个 XSL 处理器并使用 Apache 的FOP之类的东西。

于 2009-02-17T14:45:51.963 回答
-2

如何使用 perl 保存在线 pdf 文件? http://www.nwcc.bc.ca/FNC/pdfs/Stepping%20Stones%20to%20improved%20Relationships%20-%20web.pdf

我正在使用文件::下载。但问题是它没有下载带有 url 编码字符串的 url。

夏尔马

于 2009-04-06T06:54:16.390 回答