解析HTML和CSS,并且能输出成image,PDF等格式.
Flying Saucer is an XML/CSS renderer, which means it takes XML files as input, applies formatting and styling using CSS, and generates a rendered representation of that XML as output. The output may go to the screen (in a GUI), to an image, or to a PDF file. Because we believe most people will be interested in re-using their knowledge of web layout, our main target for content is XHTML 1.0 (strict), an XML document format that standardizes HTML.
作者的一篇文章:
http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html
html转图片网上有很多方式,不过如果想要是动态html转图片,基本上还是需要依靠 xhtmlrenderer+freemarker xhtmlrenderer是基于itext的一套渲染器,核心包主要是文本/图片这些简单的文本渲染工具,衍生的就包括了pdf了,关于渲染成pdf的方法可以看我另一篇文章基于xhtmlrenderer+freemarker的HTML转PDF方法_goya的博客-CSD
在实际开发中,发现在table中显示中文,渲染出来的pdf,中文内容不自动换行。经过搜索发现了一种解决方案,如下: 重写Breaker,修改right计算方式 /* * Breaker.java * Copyright (c) 2004, 2005 Torbj�rn Gannholm, * Copyright (c) 2005 Wisconsin Court System * * This pro
public class Xhtmlrenderer { private String inputFilename = "G:/index.html"; private String outputFilename = "G:/html.png"; private int widthImage = 1000; private int heightImage = 1300; public void c
1.最近项目中使用到了这个功能,所以就来记录一下,并且记录下使用过程中遇到的坑 2.首先需要引入依赖 <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</versi
首先,当然是找到能够解析PDF的完美组件,百度和谷歌不约而同的告诉我们。IText是王道。而目前开源的组件中,Itext的确是一个First Choice,如果各位单纯是做把图片转成PDF或者自己写了Velocity或者FreeMarker模板生成了HTML是非常推荐直接用Itext来进行的。 下面就是用Flying Saucer(xhtmlrendere)来实现的代码: loading... 传
最近项目上有要求,需要生成一个可供客户下载的pdf或者图片的许可协议,这个pdf/图片里面的内容需要是用户相关的内容,也就是内容是可变的,不过其他的样式是统一的,我也因此找了相关的功能包,发现可以使用 xhtmlrenderer+freemarker 完成这个需求,此次仅制作了pdf相关教程供大家参考,至于转换图片可以参考 基于xhtmlrenderer+freemarker的HTML转图片方法_
在使用xhtmlrenderer把html转换为PDF后,HTML内容显示不全。 后通过在 html/ ftl 模板页面中增加@page样式解决了这个问题。 @page { size: A4; margin: 0; }
public class PDFUtil { public static void htmls2pdf(String[] htmlFiles, String pdfFile) { Document document = new Document(); PdfCopy pdfCopy = null; //创建一个新文件 try {
org.docx4j.org.xhtmlrenderer.load INFO:: SAX XMLReader in use (parser): org.apache.xerces.parsers.SAXParser org.docx4j.org.xhtmlrenderer.load INFO:: SAX XMLReader in use (parser): org.apache.xerces.pa
我在飞碟xhtmlrenderer生成的pdf中使用自定义truetype字体. ITextRenderer renderer = new ITextRenderer(); renderer.getFontResolver().addFont("myfont.ttf", BaseFont.CP1252, BaseFont.EMBEDDED); renderer.setDocument(XMLRes
table{ border-collapse: collapse; } 1. 该样会导致生成的pdf边框消失的问题。 可替换成如下样式便可 table{ border-spacing: 0; } 参考: https://stackoverflow.com/questions/10512324/css-to-pdf-the-css-in-fly