itext5将HTML转成PDF问题中,如何在指定位置插入svg矢量图
- 生成pdf所需对象
Document document = new Document(PageSize.A4,50,50,50,50);
PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(dest));
- 将html转Element
利用xml worker将html转成itext中的ElementList对象
ElementList list = MyXMLWorkerHelper.parseToElementList(htmlfile);
[itext官方示例](https://itextpdf.com/en/resources/examples/itext-5-legacy/xml-worker-examples)
- 解析出ElementList中自己定义的占位符去找出应该在那个地方插入图片
在这里我因为在html中用的是div标签去标识的图片
这段代码主要是可以解决itext5只能识别html4的标签而不识别svg标签引发的
这段代码最大的意义在于可以准确的将svg或者其他的图片能准确的放在你html定位的位置
其中用到了XML Worker(html2pdf的一个工具包),PdfGraphics2D (将svg化成pdf),
PDFReader读取pdf(可以将一个pdf读取出来,进行一系列的操作,我这里只是为了取图片)
在这里把这个小demo的难点列出来:
1.将svg放到pdf中(有两种方法,一会引发难定位,二会引发图都一样)
2.代码走的是第二个方法,解决图都一样是用的pdfreader再解析一遍