关于 Java 实现生成 PDF 换页的事情

2024-05-31 10:47:41 +08:00
 ake0929315
有没有哪个大神有这方面的经验,如果我要生成 PDF 文件,放凭证信息,有些时候一页 A4 可以容纳 3 个完整凭证,但是有些时候由于记录多了一点,3 个完整的凭证内容没有办法容纳,就会导致第三个凭证的部份内容会显示在第二页上面,这样子特别的不美观。

请 v 友们,提供一下这方面的经验或相关开源项目的经验。
2439 次点击
所在节点    Java
14 条回复
perbugwei
2024-05-31 10:57:32 +08:00
直接每页只放一个凭证,想要放在一起再拼长图
Mithril
2024-05-31 10:57:57 +08:00
取决于你用的技术。

如果是走的 HTML+Headless Browser ,那你需要从 CSS 入手去限制分页。
如果使用 jsPDF 等等 “在某个位置插入 xx” 这类的库,找对位置就行了。

但无论如何,如果你信息真的太多了,那不分页也不可能放得下。除非你全缩放了。
zvvvvv
2024-05-31 11:43:37 +08:00
根据页面大小和凭证数量调整凭证大小,然后用绝对路径将图片放置在指定位置
dongdong12345
2024-05-31 13:23:41 +08:00
你可以尝试做一个 word 模板,通过 word 模板生成你想要的内容,最后再 word 转 pdf
kkocdko
2024-05-31 13:36:58 +08:00
We even never know which libs is used in your project.
weenhall5
2024-05-31 13:39:17 +08:00
@kkocdko you are god damn right
ake0929315
2024-05-31 14:30:56 +08:00
@lmq2582609 目前我就是通过 xls 的模板去处理的,但是转成 pdf 后,也会存在一个凭证跨页了的情况。
ake0929315
2024-05-31 14:32:11 +08:00
@perbugwei 这样子太浪费纸张了,这种问题,一般就是会打印全量凭证的情况。
Nnq
2024-05-31 14:48:34 +08:00
跨页就跨页了吧,偶尔有问题就将就用咯,如果经常超出 那就设施每页少放些凭证不就好了么🧾
ake0929315
2024-05-31 15:02:20 +08:00
@kkocdko 目前就是先生成 excel ,然后把 excel 转成 pdf 的方式的。
vaynecv
2024-05-31 15:44:59 +08:00
用过 aspose 的 pdf 工具包,可以设置一页显示,但是宽度过宽貌似会缩放
参考:
PdfSaveOptions saveOptions = new PdfSaveOptions();
saveOptions.setOnePagePerSheet(true);
saveOptions.setAllColumnsInOnePagePerSheet(true);
ake0929315
2024-05-31 16:45:38 +08:00
@vaynecv 好的,这种方式,我先试试,感谢!
Hozoy
2024-05-31 17:29:40 +08:00
可以试试 x-easypdf ,用这个好像会自动处理表格换页这种情况。
Ashe007
2024-05-31 19:04:43 +08:00
https://www.cnblogs.com/ashet/p/17540963.html
我转 PDF 是使用 spire.xls.free 这个 lib 非常好用,你可以试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1045627

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX