如题,现在有个需求就是要自定义模版,进行动态填充数据。然后保存为 pdf,有什么比较通用的方案吗,我之前看到比较多的是 word 模版转 pdf,但是还是比较麻烦。
1
Carbule 2021-01-15 10:39:03 +08:00
.jasper
|
3
vindac 2021-01-15 10:44:29 +08:00
蹲一个方案。目前我们采用的就是 freemarker 和 aspose,很难搞
|
4
joooooker21 2021-01-15 10:48:41 +08:00
itextpdf
手动编辑 pdf 模板 , 代码中填充,模板再生成新的 pdf |
5
howells OP @joooooker21 这个有 licence 限制,希望有开源或者 licence 不严格的
|
6
TesterCC 2021-01-15 10:51:36 +08:00
html 转 pdf
|
7
young1lin 2021-01-15 11:00:10 +08:00
我之前做过,两个方法,
一是渲染成 HTML,用 Enjoy 或者 Jasper 、Thymeleaf 之类的模板引擎,渲染出来 HTML 后,发到前端,然后插入到隐藏的 div 中,用对应的 jQuery 插件转成 PDF (我就是这么干的,注意样式)。 二是就是你说的 Word 转 PDF,不过这个还是要先渲染成 HTML,发到前端渲染,再转到后端把那些样式带上的那种。发到前端的目的是要可编辑,有些内容要手动编辑,不是生成的。数据库把渲染后的 HTML 保存对应的 Blob 。所以这个方式也用了。 我两年前做的是个考试的系统,各种打印基本都是我做的。。。这个我太熟了。 |
8
alinwu05 2021-01-15 11:12:35 +08:00
数据填充 Word 模板,再转 PDF 。
Word 模板容易编辑,非开发人员也容易更改,Word 转 PDF 开源方案很多。 |
9
littleshy 2021-01-15 11:31:06 +08:00
说个我们 aspnet core 的做法:
1:后端编写 Razor 模板,传入参数渲染成 HTML 字符串; 2:调用 wkhtmltopdf 将 HTML 转成 PDF 。 |
10
RedBeanIce 2021-01-15 13:21:51 +08:00 via iPhone
图片转 pdf,,我管你要什么样的图片,
|
11
bluefountain 2021-01-15 13:38:42 +08:00
livecycle?
|
12
Hyseen 2021-01-15 13:40:51 +08:00
渲染成 HTML,然后用 puppeteer 转成 PDF
|
13
taosx 2021-01-15 13:44:28 +08:00
freemarker + itex
|
14
jie170601 2021-01-15 13:49:03 +08:00
wkhtmltopdf
|
15
lovesky 2021-01-15 13:57:54 +08:00
我们的系统就是 html->wkhtmltopdf->pdf->jpg
|
16
fakeJas0n 2021-01-15 14:28:17 +08:00
openhtmltopdf
|
17
stephCurry 2021-01-15 14:38:31 +08:00
```
public static byte[] createPdf(String htmlContent) throws Exception { ITextRenderer renderer = new ITextRenderer(); renderer.getFontResolver().addFont(getFontPath(), BaseFont.IDENTITY_H, true); renderer.setDocumentFromString(htmlContent); renderer.layout(); ByteArrayOutputStream fos = new ByteArrayOutputStream(htmlContent.length()); renderer.createPDF(fos, false); renderer.finishPDF(); return fos.toByteArray(); } ``` |
18
zhangweifang 2021-01-15 15:03:33 +08:00
HTML to PDF 可以使用无头浏览器,比如 puppeteer 之类的,把 HTML “打印”成 PDF 。
|
19
yazhouli01 2021-01-15 15:04:59 +08:00
|
20
kiracyan 2021-01-15 15:07:28 +08:00
以前做的是 html 转的 不知道有没有更好的方案
|
21
wzxlovesy 2021-01-15 15:10:59 +08:00 via Android
pandoc?
|
22
liudaolunhuibl 2021-01-15 16:39:30 +08:00
asponse
|
23
nobody123 2021-01-15 16:55:31 +08:00
Ghostscript
|
24
jk1030 2021-01-15 17:23:44 +08:00
我记得做过一个,因为项目的关系用不了 freemarker html 被否了 最后用的截图后填充
|
25
vcode 2021-01-15 18:28:02 +08:00
itextpdf
|
26
cmai 2021-01-15 18:31:00 +08:00
freemarker+itextpdf
|
27
cmai 2021-01-15 18:32:08 +08:00
用 HTML+freemarker 当模板,填充动态数据,然后 itextpdf 转成 pdf 文件
|
28
TinyKube 2021-01-15 18:32:41 +08:00 via iPhone
类似的需求直接用 tinymce 编辑模板,填充后直接网页打印,要存 pdf 用户自行选择
|
29
MicroBotter 2021-01-16 02:42:32 +08:00
Latex ⇒ PDF?
|
30
ccraohng 2021-01-16 09:07:56 +08:00 via iPhone
html 渲染 wkhtml 。puppeteer,前端有分页问题。
|
31
XuHuan1025 2021-01-19 17:28:53 +08:00
itet<dependency>
<groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency> 刚刚写完 就是 map 填充 |
32
DreamSaddle 2021-01-23 09:05:10 +08:00 via iPhone
freemarker 或是 thymeleaf 渲染👌html 厚用 puppeteer 无头模式转。
目前我遇到的效果最好的方案,其余免费方案基本都有暇疵 |