版权声明:有不足之处欢迎指出,欢迎交流 https://blog.csdn.net/qq_33594101/article/details/78965110
pom.xml
<!--java生成pdf需要的jar包-->
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.6</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
java代码演示
/**
* pdf工具类
*/
public class PDFUtil {
public static void htmlToPDF(String htmlString, String pdfPath) {
try {
InputStream htmlFileStream = new FileInputStream(htmlString);
// 创建一个document对象实例
Document document = new Document();
// 为该Document创建一个Writer实例
PdfWriter pdfwriter = PdfWriter.getInstance(document,
new FileOutputStream(pdfPath));
pdfwriter.setViewerPreferences(PdfWriter.HideToolbar);
// 打开当前的document
document.open();
InputStreamReader isr = new InputStreamReader(htmlFileStream, "UTF-8");
XMLWorkerHelper.getInstance().parseXHtml(pdfwriter, document,htmlFileStream,null,null,new MyFontsProvider());
//XMLWorkerHelper.getInstance().p
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
PDFUtil.htmlToPDF("D:\\pdf\\cc.html", "D:\\pdf\\a.pdf");
}
}
/**
* 处理中文不显示和乱码问题
*/
class MyFontsProvider extends XMLWorkerFontProvider {
public MyFontsProvider(){
super(null, null);
}
@Override
public Font getFont(final String fontname, String encoding, float size, final int style) {
String fntname = fontname;
if (fntname == null) {
fntname = "宋体";//windows下
//fntname = "fontFile/simsun.ttf";//linux系统下
}
if (size == 0) {
size = 4;
}
return super.getFont(fntname, encoding, size, style);
}
}