html标签需要添加属性:font-family: 'BabelStoneHan',sans-serif;
pom openhtml.version
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-core</artifactId>
<version>${openhtml.version}</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-pdfbox</artifactId>
<version>${openhtml.version}</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-java2d</artifactId>
<version>${openhtml.version}</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-rtl-support</artifactId>
<version>${openhtml.version}</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-jsoup-dom-converter</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-slf4j</artifactId>
<version>${openhtml.version}</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-log4j</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-svg-support</artifactId>
<version>${openhtml.version}</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-mathml-support</artifactId>
<version>${openhtml.version}</version>
</dependency>
测试代码
String htmlFile = "/youpath/ppm-2.html";
String pdflFile = "/youpath/ppm-3.pdf";
FileOutputStream outputStream = new FileOutputStream(pdflFile);
try (FileOutputStream fos = new FileOutputStream(pdflFile)) {
PdfRendererBuilder builder = new PdfRendererBuilder();
builder.useFont(new File(
"you-path/fonts/BabelStoneHan.ttf"),
"BabelStoneHan");
builder.toStream(fos);
builder.useFastMode();
//String html= "<body style=\"font-family: 'BabelStoneHan', sans-serif; font-size: 20px;\">Hello world! <br/> 每星期三 </body>";
String html = "<html><head><meta charset=\"UTF-8\"></meta></head><body>"
+ "<h1 style =\"font-family: 'BabelStoneHan',sans-serif;\">中文HTML转PDF示例</h1>"
+ "<p>这是一个包含中文的 HTML 内容。</p><br/>"
+ "<table style=\"width:100%; border-collapse: collapse;font-family: 'BabelStoneHan',sans-serif;\">"
+ "<tr><th style=\"border: 1px solid black; padding: 8px;font-family: 'BabelStoneHan',sans-serif;\">表头1</th>"
+ "<th style=\"border: 1px solid black; padding: 8px;\">表头2</th>"
+ "<th style=\"border: 1px solid black; padding: 8px;\">表头3</th></tr>"
+ "<tr><td style=\"border: 1px solid black; padding: 8px;\">数据1</td>"
+ "<td style=\"border: 1px solid black; padding: 8px;\">数据2</td>"
+ "<td style=\"border: 1px solid black; padding: 8px;\">数据3</td></tr>"
+ "</table></body></html>";
builder.withHtmlContent(
html,
null);
builder.run();
}
System.out.println("123");