<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.9</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.9</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf-itext5</artifactId>
<version>9.0.3</version>
</dependency>
import com.itextpdf.text.pdf.BaseFont;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class HtmlToPdfUtils {
private HtmlToPdfUtils() {}
public static void htmlToPdf(File htmlFile, String pdfPath) throws Exception {
OutputStream os = new FileOutputStream(pdfPath);
ITextRenderer iTextRenderer = new ITextRenderer();
iTextRenderer.setDocumentFromString("<h1>hi低俗化的是的撒打算速度赛和多瑙河上的上的撒旦你哦阿姐佛i阿斯顿</h1>");
ITextFontResolver fontResolver = iTextRenderer.getFontResolver();
if ("linux".equals(getCurrentOperationSystem())) {
fontResolver.addFont("/usr/share/fonts/chiness/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
} else {
fontResolver.addFont(HtmlToPdfUtils.class.getClassLoader().getResource("Fonts/simsun.ttc").getPath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
}
iTextRenderer.layout();
iTextRenderer.createPDF(os);
os.flush();
os.close();
}
private static String getCurrentOperationSystem() {
String os = System.getProperty("os.name").toLowerCase();
return os;
}
public static void main(String[] args){
File file = new File("D:\\test.html");
String pdfPath = "D:\\鸿枫.pdf";
try{
htmlToPdf(file, pdfPath);
}catch (Exception e){
e.printStackTrace();
}
}