1、导入相关的jar包
itext-2.1.7.jar
itextpdf-5.4.3.jar
xmlworker-5.4.3.jar
注:我的资源中有相关jar:itextpdf-jar_x64
2、相关代码
package com.example.demo.utils; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import com.itextpdf.text.document; import com.itextpdf.text.PageSize; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.tool.xml.XMLWorkerHelper; public class HtmlToPdf { private static final String PDF_PATH = "F:\html2PDF.pdf"; private static final String HTML_PATH = "F:\pdfTest.jsp"; private static final String CSS_PATH = "F:\html2pdf.css"; public static void main(String[] args) throws Exception { // baseFont baseFont = baseFont.createFont("front/msyh.ttf", baseFont.IDENTITY_H, baseFont.NOT_EMBEDDED); // 文字如果要加粗,修改第三个参数 // Font msya = new Font(baseFont, 12, Font.NORMAL); document document = new document(PageSize.A4, 10, 10, 10, 10);//左右上下的margin document.setMargins(0, 0, 0, 0); PdfWriter pdfwriter; pdfwriter = PdfWriter.getInstance(document, new FileOutputStream(PDF_PATH)); document.open(); XMLWorkerHelper wh = XMLWorkerHelper.getInstance(); InputStream cssInput = new FileInputStream(CSS_PATH); wh.parseXHtml(pdfwriter, document, new FileInputStream(HTML_PATH), cssInput, new DefineFontProvider()); document.close(); System.out.println("succeed"); } }package com.example.demo.utils; import com.itextpdf.text.baseColor; import com.itextpdf.text.Font; import com.itextpdf.text.pdf.baseFont; import com.itextpdf.tool.xml.XMLWorkerFontProvider; public class DefineFontProvider extends XMLWorkerFontProvider { @Override public Font getFont(final String fontname, final String encoding, final boolean embedded, final float size, final int style, final baseColor color) { baseFont bf = null; try { bf = baseFont.createFont("front/msyh.ttf", baseFont.IDENTITY_H, baseFont.NOT_EMBEDDED); } catch (Exception e) { e.printStackTrace(); } Font font = new Font(bf, size, style, color); font.setColor(color); return font; } }
3、导入相关字体:
msyh.ttf 微软雅黑包



