4

你知道 Perl 的PDF::API2模块是否可以生成包含英语和希伯来语文本的文档?我已经搜索了一段时间,似乎找不到如何处理从右到左的语言文本。

最终我会想在一栏中列出英语,在另一栏中列出希伯来语。但我很乐意将这两个文本放在不同的行上。

如果必须,我愿意使用外部工具,但我希望有一种比使用 OpenOffice 或 FireFox 打印到 PDF 更轻量级的方法。

4

4 回答 4

1

我不使用 Perl,因此无法回答您关于 PDF:API2 的问题。但我确实使用 Java,并且知道 iText 库支持从右到左的文本 - iText 也可用于 .NET。

这是更改文本方向的示例:http: //itextdocs.lowagie.com/examples/com/lowagie/examples/fonts/styles/RightToLeft.java

于 2009-10-07T23:56:34.727 回答
1

PDF::API2有很多功能,但非常深奥。我发现很难从文档中挖掘所需的信息。您必须使所有内容“恰到好处”才能正确呈现 PDF,并且如果您的需求发生变化,它往往会对您现有的代码产生级联效应,以使所有内容都能很好地协同工作。例如,在特定位置插入一个元素可能意味着您需要重新计算该页面上呈现的所有其他元素的位置,精确到单点精度,具体取决于您使用 API 的方式。

因此,我们最近放弃了一直使用 PDF::API2 的解决方案,转而开始生成 HTML,然后我们使用外部工具将其转换为 PDF。有一些不错的免费的,例如Sinan Ünür 建议的PDF::FromHTML 。如果您想看中您的 HTML 并将其很好地转换为 PDF(尽管我没有亲自使用它们),还有一些功能更丰富的商业产品。

如果您需要对现有 PDF 进行一些简单的操作,而不是生成它们,我会使用(并且确实使用)CAM::PDF

简而言之,我不推荐 PDF::API2,除非您愿意花费大量时间来弄清楚它的所有复杂性并在未来亲自支持您的应用程序。它非常强大且功能丰富,但除非您确切地知道自己在做什么,否则缺少文档和示例将比模块提供的帮助更多地阻碍您。

于 2009-10-08T14:05:49.860 回答
1

好吧,我不知道如何使用PDF::API2,更不用说使用它创建希伯来语文档了,所以我无法帮助你。

在深入研究之前,我会先尝试PDF::FromHTMLPDF::API2,但是,我很容易害怕。

于 2009-10-07T23:50:48.630 回答
-1

你真的必须使用PDF::API2吗?我不知道那个图书馆,只是试了一下;它似乎有一个很好的底层编程基础代码,但我没有看到任何与实际排版相关的东西,更不用说从右到左排版的特殊要求了。你好,世界!示例效果很好,您甚至可以用任意 TrueType 字体替换那里使用的核心字体(只需将$pdf->corefont('Helvetica-Bold');调用替换为$pdf->ttfont('/path/to/font/file.ttf');) 但是我一开始就找不到关于编码的任何信息,所以我什至无法设置单个希伯来语字符,因为 UTF-8 序列在 PDF 文件中出现乱码(我还尝试了一些其他编码,没有有用)。显然,它有一些支持,因为我看到一个名为 PDF/API2/Basic/TTF/Cmap.pm 的文件(cmap 是定义字体编码的 TrueType 表),但同样,它似乎相当低等级。

我是否应该补充一点,文档似乎非常稀缺(包括一个名为“字体和排版”的完全空白的部分!),并且该开发显然在 2005 年停止了;我认为该库到目前为止还太不完整,无法用于真正的项目(尤其是像你这样的项目)。真的很遗憾,因为十年前它似乎已经有了很大的发展。

于 2009-10-08T01:51:06.737 回答