Apache PDFBox Java 库 - 是否有用于创建表的 API?
我正在使用 Apache PDFBox java 库来创建 PDF。有没有办法使用 pdfbox 创建数据表?如果没有这样的API来做到这一点,我需要使用drawLine等手动绘制表格,关于如何解决这个问题有什么建议吗?
I am using the Apache PDFBox java library to create PDFs. Is there a way to create a data-table using pdfbox? If there is no such API to do it, I would require to manually draw the table using drawLine etc., Any suggestions on how to go about this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
来源:使用 PDFBox 创建表格
以下方法绘制一个具有指定表格内容的表格。它有点破解,适用于小字符串。它不执行自动换行,但您可以了解它是如何完成的。试一试吧!
用法:
Source: Creating tables with PDFBox
The following method draws a table with the specified table content. Its a bit of a hack and will work for small strings of text. It does not perform word wrapping, but you can get an idea of how it is done. Give it a go!
Usage:
我创建了一个小型 api,用于使用 PDFBox 创建表格。
它可以在 github 上找到(https://github.com/dhorions/boxable)。
生成的 pdf 示例可在此处找到 http://goo.gl/a7QvRM。
欢迎任何提示或建议。
I created a small api for creating tables using PDFBox.
It can be found on github ( https://github.com/dhorions/boxable ) .
A sample of a generated pdf can be found here http://goo.gl/a7QvRM.
Any hints or suggestions are welcome.
由于我前段时间遇到了同样的问题,我开始为其构建一个小型库,我也试图保持最新状态。
它使用 Apache PDFBox 2.x,可以在此处找到:
https://github.com/vandeseer/easytable
它允许进行一些自定义设置,例如设置字体、背景单元格级别的颜色、填充等、垂直和水平对齐、单元格跨度、自动换行和单元格中的图像。
跨多个页面绘制表格也是可能的。
例如,您可以创建这样的表:
此示例的代码可以在 此处 – 同一文件夹中的其他示例。
Since I had the same problem some time ago I started to build a small library for it which I am also trying to keep up to date.
It uses Apache PDFBox 2.x and can be found here:
https://github.com/vandeseer/easytable
It allows for quite some customizations like setting the font, background color, padding etc. on the cell level, vertical and horizontal alignment, cell spanning, word wrapping and images in cells.
Drawing tables across several pages is also possible.
You can create tables like this for instance:
The code for this example can be found here – other examples in the same folder as well.
接受的答案很好,但它仅适用于 Apache PDFBox 1.x,对于 Apache PDFBox 2.x 您需要修改一点代码才能实现正常工作。
因此,这里是相同的代码,但与 Apache PDFBox 2.x 兼容:
方法
drawTable
:用法更新为使用 try-with-resources 语句正确关闭资源:
The accepted answer is nice but it will work with Apache PDFBox 1.x only, for Apache PDFBox 2.x you will need to modify a little bit the code to make it work properly.
So here is the same code but that is compatible with Apache PDFBox 2.x:
The method
drawTable
:The Usage updated to use the try-with-resources statement to close the resources properly: