howells
V2EX  ›  Java

求方案,自定义模版转 pdf。

  •  
  •   howells · Jan 15, 2021 · 4929 views
    This topic created in 2126 days ago, the information mentioned may be changed or developed.

    如题,现在有个需求就是要自定义模版,进行动态填充数据。然后保存为 pdf,有什么比较通用的方案吗,我之前看到比较多的是 word 模版转 pdf,但是还是比较麻烦。

    32 replies  •  2021-01-23 09:05:10 +08:00
    Carbule
    Carbule
    Jan 15, 2021
    1
    .jasper
    howells
    howells
    OP
    Jan 15, 2021
    2
    @Carbule 我去看看,谢谢
    vindac
    vindac
    Jan 15, 2021
    3
    蹲一个方案。目前我们采用的就是 freemarker 和 aspose,很难搞
    joooooker21
    joooooker21
    Jan 15, 2021
    4
    itextpdf

    手动编辑 pdf 模板 , 代码中填充,模板再生成新的 pdf
    howells
    howells
    OP
    Jan 15, 2021
    5
    @joooooker21 这个有 licence 限制,希望有开源或者 licence 不严格的
    TesterCC
    TesterCC
    Jan 15, 2021
    6
    html 转 pdf
    young1lin
    young1lin
    Jan 15, 2021
    7
    我之前做过,两个方法,

    一是渲染成 HTML,用 Enjoy 或者 Jasper 、Thymeleaf 之类的模板引擎,渲染出来 HTML 后,发到前端,然后插入到隐藏的 div 中,用对应的 jQuery 插件转成 PDF (我就是这么干的,注意样式)。

    二是就是你说的 Word 转 PDF,不过这个还是要先渲染成 HTML,发到前端渲染,再转到后端把那些样式带上的那种。发到前端的目的是要可编辑,有些内容要手动编辑,不是生成的。数据库把渲染后的 HTML 保存对应的 Blob 。所以这个方式也用了。

    我两年前做的是个考试的系统,各种打印基本都是我做的。。。这个我太熟了。
    alinwu05
    alinwu05
    Jan 15, 2021
    8
    数据填充 Word 模板,再转 PDF 。
    Word 模板容易编辑,非开发人员也容易更改,Word 转 PDF 开源方案很多。
    littleshy
    littleshy
    Jan 15, 2021
    9
    说个我们 aspnet core 的做法:
    1:后端编写 Razor 模板,传入参数渲染成 HTML 字符串;
    2:调用 wkhtmltopdf 将 HTML 转成 PDF 。
    RedBeanIce
    RedBeanIce
    Jan 15, 2021 via iPhone
    10
    图片转 pdf,,我管你要什么样的图片,
    bluefountain
    bluefountain
    Jan 15, 2021
    11
    livecycle?
    Hyseen
    Hyseen
    Jan 15, 2021
    12
    渲染成 HTML,然后用 puppeteer 转成 PDF
    taosx
    taosx
    Jan 15, 2021
    13
    freemarker + itex
    jie170601
    jie170601
    Jan 15, 2021
    14
    wkhtmltopdf
    lovesky
    lovesky
    Jan 15, 2021
    15
    我们的系统就是 html->wkhtmltopdf->pdf->jpg
    fakeJas0n
    fakeJas0n
    Jan 15, 2021
    16
    openhtmltopdf
    stephCurry
    stephCurry
    Jan 15, 2021
    17
    ```
    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();
    }

    ```
    zhangweifang
    zhangweifang
    Jan 15, 2021
    18
    HTML to PDF 可以使用无头浏览器,比如 puppeteer 之类的,把 HTML “打印”成 PDF 。
    kiracyan
    kiracyan
    Jan 15, 2021
    20
    以前做的是 html 转的 不知道有没有更好的方案
    wzxlovesy
    wzxlovesy
    Jan 15, 2021 via Android
    21
    pandoc?
    liudaolunhuibl
    liudaolunhuibl
    Jan 15, 2021
    22
    asponse
    nobody123
    nobody123
    Jan 15, 2021
    23
    Ghostscript
    jk1030
    jk1030
    Jan 15, 2021
    24
    我记得做过一个,因为项目的关系用不了 freemarker html 被否了 最后用的截图后填充
    vcode
    vcode
    Jan 15, 2021
    25
    itextpdf
    cmai
    cmai
    Jan 15, 2021
    26
    freemarker+itextpdf
    cmai
    cmai
    Jan 15, 2021
    27
    用 HTML+freemarker 当模板,填充动态数据,然后 itextpdf 转成 pdf 文件
    TinyKube
    TinyKube
    Jan 15, 2021 via iPhone
    28
    类似的需求直接用 tinymce 编辑模板,填充后直接网页打印,要存 pdf 用户自行选择
    MicroBotter
    MicroBotter
    Jan 16, 2021
    29
    Latex ⇒ PDF?
    ccraohng
    ccraohng
    Jan 16, 2021 via iPhone
    30
    html 渲染 wkhtml 。puppeteer,前端有分页问题。
    XuHuan1025
    XuHuan1025
    Jan 19, 2021
    31
    itet<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.10</version>
    </dependency>
    刚刚写完 就是 map 填充
    DreamSaddle
    DreamSaddle
    Jan 23, 2021 via iPhone
    32
    freemarker 或是 thymeleaf 渲染👌html 厚用 puppeteer 无头模式转。
    目前我遇到的效果最好的方案,其余免费方案基本都有暇疵
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2532 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 04:40 · PVG 12:40 · LAX 20:40 · JFK 23:40
    ♥ Do have faith in what you're doing.