java html转pdf生成带目录可跳转的pdf

将html转为pdf时,由于没有目录,故在生成pdf之后操作pdf来生成目录,但是有跳转问题,点击目录跳转不到对应的页面,该问题困扰了好多天,结果用一个很简单的办法即可解决。

将目录写道html代码中,用锚点解决,a标签跳转,当转为pdf时,点击a标签跳转事件还是可以正常跳转。由于itext5及以上版本采用AGPLv3协议,基本不可商用,所以采用了flying-saucer-pdf来完成html转pdf操作。上个核心代码吧。

ITextRenderer renderer = new ITextRenderer();
        String simsun = "D:\\simsun.ttc";
        String arialuni = "D:\\arialuni.ttf";
        //设置字体,解决输出中文为空白的问题。
        renderer.getFontResolver().addFont(simsun, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        renderer.getFontResolver().addFont(arialuni, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        String html = FileUtils.readFileToString(new File("D:\\template.html"), StandardCharsets.UTF_8);

        // 把html代码传入渲染器中
        renderer.setDocumentFromString(html);
        FileOutputStream out = new FileOutputStream("D:\\TEST\\test.pdf");
        renderer.layout();
        renderer.createPDF(out);
        renderer.finishPDF();
        out.flush();
        out.close();

template.html的代码内容如下:

<html>
<head>
<title>目录与内容</title>
</head>
<body>
<h1>目录与内容</h1>
<ul>
<li><a href="#intro">1111</a></li>
<li><a href="#history">2222</a></li>
<li><a href="#conclusion">3333</a></li>
</ul>
<h2 id="intro" style="margin-top: 800px;">111</h2>
1111……
<h2 id="history">222</h2>
2222……
<h2 id="conclusion">333</h2>
33333……
</body>
</html>

相关flying-saucer-pdf的中文问题,换行问题,分页,页眉页脚,水印等推荐参考这位博主的文章flying-saucer-pdf终于完美解决了(中文问题,换行问题,分页,页眉页脚,水印),html+css控制pdf样式

如有其他问题,请留言,欢迎大家来交流有关java操作pdf的各种问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值