有个需求是通过pdf生成html。研究了下打算使用itext。然后就去官网上看了下,itext已经有itext7了,然后还不太完善。后面还是用了itext5。导入了以下的maven包:
com.itextpdf
itextpdf
com.itextpdf.tool
xmlworker
org.jsoup
jsoup
xmlworker是itext解析html的工具就不用说了,jsoup可以将html格式化成标准html当然还不是标准的xhtml,自个改了下jsoup:
打开jsoup的Element源代码,query一下img(1165行),然后注释3行(也可以自个加个变量进行控制):
// selfclosing includes unknown tags, isEmpty defines tags that are always empty
if (childNodes.isEmpty() && tag.isSelfClosing()) {
//if (out.syntax() == Document.OutputSettings.Syntax.html && tag.isEmpty())
// accum.append('>');
//else
accum.append(" />"); // in html, in xml
}
写程序中发现问题如下:
1.中文不显示。
2.不能转换多行。
3.图片不能显示(图片标记用了下可以使用http的方式和相对路径和绝对路径的方式,直接写入的Base64的记录并不能认,暂不要使用)
以下是代码,已处理了问题,供参考:
package com.junziqian.common;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apa