【问题标题】:How to create Table using Apache PDFBox如何使用 Apache PDFBox 创建表格
【发布时间】:2015-03-19 12:29:39
【问题描述】:

我们计划将我们的 pdf 生成实用程序从 iText 迁移到 PDFBox(由于 iText 中的许可问题)。通过一些努力,我能够编写和定位文本、画线等。但是在表格单元格中创建嵌入文本的表格是一个挑战,我浏览了文档、示例、谷歌、Stackoverflow 找不到任何东西。想知道 PDFBox 是否为创建带有嵌入文本的表格提供本机支持。我最后的手段是使用这个链接https://github.com/eduardohl/Paginated-PDFBox-Table-Sample

【问题讨论】:

  • 就文档创建而言,PDFBox主要相当于iText的底层API。您缺少的是在此之上替换 iText 的高级 API 的东西。我不知道有类似的东西可供公众使用。
  • 是的,你成功了。缺少用于创建所有这些表格的 PDFBox 高级 API。许多开发社区正在从 iText 迁移到其他开源 pdf 库,我相信有人会有一个优雅的解决方案。
  • 这是另一个:github.com/dhorions/boxable
  • @TilmanHausherr 恐怕所有这些样本 IMO 只是概念证明,可能在有限的用例中使用,但到目前为止还不是通用的。 PDFBox 有它的优势,例如一个非常通用的内容提取框架和内容渲染能力,但缺少适当的布局 API 是一个严重的弱点。

标签: java pdf pdfbox


【解决方案1】:

由于我还需要一个辅助项目的表格绘制功能,我自己实现了一个小型“表格抽屉”库,我将其上传到github

为了生成这样的表格——例如——...

...你需要this code。 在同一个文件中,您还可以找到该表的代码:

目前的“功能列表”包括:

  • 在表格级别和单元格级别设置字体和字体大小
  • 分别定义具有底部、顶部、左侧和右侧边框宽度的单个单元格
  • 在行或单元格级别定义背景颜色
  • 在单元格级别定义填充(上、下、左、右)
  • 定义边框颜色(在表格、行或单元格级别)
  • 指定文本对齐方式(垂直和水平)
  • 单元格跨越和行跨越
  • 文本换行和行距

此外,如果需要,添加缺失的内容应该不会太难,例如在顶部、底部、左侧和右侧边框上使用不同的边框颜色。

【讨论】:

  • 试图试一试.. 你是否在源代码中缺少 AWTColor 类?
  • 确实!感谢您的反馈意见! :) 显然我没有仔细检查最后的拉取请求。请再次 git pull,它现在应该可以工作了。
  • 分页呢?
  • 你的意思是一个跨越几页的表格?如果是这样,请查看此代码,它会生成一个超过三页的表格:github.com/vandeseer/easytable/blob/master/src/test/java/org/…
  • @philonous 是否支持逐页添加多个表格?
【解决方案2】:

感谢 Tilman 提供的链接。使用 boxable API (https://github.com/dhorions/boxable) 我能够创建我想要的表。仅供参考,我想创建具有可变数量单元格的表格。例如,第 1 行有 2 个单元格,第 2 行可能有 5 个单元格,第 3 行可能只有 3 个单元格。我能够轻松完成。我在上面提到的链接中关注了 Example1.java。

【讨论】:

  • 我找不到您在回答中提到的 Example1.java。请您粘贴您的代码或 Example1.java。
  • @DarshanPuranik:也许这个test 可以帮助你。
猜你喜欢
  • 2011-04-21
  • 1970-01-01
  • 2022-09-27
  • 2019-08-31
  • 2018-03-20
  • 2015-01-15
  • 2013-07-04
  • 1970-01-01
  • 2013-11-11
相关资源
最近更新 更多