zoukankan      html  css  js  c++  java
  • Java HTML to PDF 支持SVG

    尝试一 (现用框架的基础上改动,影响最小化)

    最早使用的框架 Xhtmlrenderer,需要把HTML转换成XHTML,引入第二个框架Tidy,Tidy与2010年停止更新,github上的项目也停留在2011年,它对SVG等HTML5标签不在支持

    找到源码,做了修改,让Tidy支持了SVG标签,又遇到了两一个问题,Xhtmlrenderer 不识别SVG标签,终止。

    尝试二 (SVG转PDF上入手)

    从SVG转PDF入手

    apache的batik框架支持满足需求,但是它并没有提供HTML转PDF,终止。

    尝试三 (Highchar-export-server)

    前端的char框架为highchar,支持导出PDF、png、svg等格式。查源码找到服务端项目Highchar-export-server,虽然是java支持,但底层调用的是phantomjs,仅支持SVG转PDF,同上,终止。

    尝试四 (openhtmltopdf)

    An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support.

    看说明好像满足了我们的需求

    Open HTML to PDF is based on Flying-saucer. Credit goes to the contributors of that project. Code will also be used from neoFlyingSaucer

    测试例子

    Test cases, failing or working are welcome, please place them in /openhtmltopdf-examples/src/main/resources/testcases/ 

    and run them from /openhtmltopdf-examples/src/main/java/com/openhtmltopdf/testcases/TestcaseRunner.java.

    可能会涉及到引入字体

    builder.useFont(fontFile, fontFamily);

    该框架对HTML标签严谨度有点高(大小写、闭合标签等),兼容的话 改源码可以搞定。

    测试中对于某些特殊的SVG图,转换并不是很好。

    https://github.com/danfickle/openhtmltopdf

    别的不多说了,自己看吧,基本满足了需求。

  • 相关阅读:
    单例模式
    collections额外数据类型
    logging的简单使用
    杂记
    字符编码
    面向对象编程简介
    logging模块
    re与subprocess模块
    oepnpyxl模块 与excle交互
    json序列化模块
  • 原文地址:https://www.cnblogs.com/tusheng/p/6991275.html
Copyright © 2011-2022 走看看