【问题标题】:pdfbox for pdf creation: how to do the text layout?pdfbox 用于创建 pdf:如何进行文本布局?
【发布时间】:2014-10-07 14:46:57
【问题描述】:

我想使用 pdfbox (https://pdfbox.apache.org/cookbook/documentcreation.html) 创建一个 PDF。但是,pdfbox 似乎没有提供像 OpenOffice 这样的文本编辑器提供的动态文本布局机制(使用预定义文本格式的自动文本流,如块格式、居中文本、换行符等)。

是否有任何 Java 库在 pdfbox 之上或独立于它提供该功能?或者你们有免费的代码吗?

【问题讨论】:

  • 如果您想在 Java 中执行此操作,我推荐 iText;如果您更喜欢 XSL-T,我推荐使用 FOP。
  • 不,目前没有。随意贡献一些东西:-)
  • 嗯。最好有一些独立于输出格式的东西。然后创建一个适配器或其他东西。

标签: java maven pdf-generation pdfbox


【解决方案1】:

我遇到了同样的问题,这就是我开始PDFBox-Layout 的原因。它支持简单的自动换行、文本和段落对齐、分页、垂直和列布局以及便于粗体/斜体突出显示的标记。

请参阅Wiki 了解更多信息。也许你会发现它很有用:-)

【讨论】:

    【解决方案2】:

    BlockFrame(在 GitHub 上)是 PDFBox 的另一个布局框架,填充了与 PDFBox-Layout 不同的空间。 PDFBox-Layout 似乎面向文本,但 BlockFrame 是为复杂的数据结构而设计的。它的设计也考虑到了可扩展性。

    我需要一些东西来打印我生成的填字游戏,并最终编写了一个框架。如果有兴趣,我会扩展并维护它。应该可以使用 BlockFrame 绘制较大 PDF 文档的小而复杂的部分,以及生成整个 PDF。

    我们将不胜感激。

    【讨论】:

    • 我建议您在 github 页面上使用“Apache PDFBox”而不是“PDF Box”,以便更容易找到您的项目。还可以考虑添加示例(截图)。
    【解决方案3】:

    我在 Ruby 中遇到了类似的问题。我以前用过Prawn,它的语法类似于pdfbox。很多原始人。

    我发现使用 HTML+CSS 转 PDF 解决方案要好得多。我已经在生成 HTML 和 CSS,而且制作特定于打印的 CSS 很容易。然后我使用 wkhtmltopdf 或princexml 生成PDF。两者都是在各种平台上运行的命令行工具。

    【讨论】:

    • HTML 没有分页符的概念。这当然不是出于许多目的,但有些目的。
    • 这是不正确的。当然 HTML+CSS 有分页符的概念。有 page-break-before 和 page-break-after 以及一些其他控件。甚至还有寡妇和孤儿控制。我可以用 HTML 排版整本小说,然后使用 PrinceXML 将其转换为 PDF。
    猜你喜欢
    • 2018-03-20
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    相关资源
    最近更新 更多