用官网的示例, 转换出来的pdf中文都不见了,加上ConvertProperties参数后,添加系统字体,就解决了。记得之前解决iText中文问题,老费劲了,现在API使用起来方便多了,不由感叹,世间美好。
public class HtmlToPdfService {
private static final Logger log = org.slf4j.LoggerFactory.getLogger(HtmlToPdfService.class);
public static Path convert(String html) {
Path tempFile = null;
try {
tempFile = Files.createTempFile("html-to-pdf-", ".pdf");
final ConverterProperties converterProperties = new ConverterProperties();
final FontProvider fontProvider = new DefaultFontProvider();
final int ret = fontProvider.addSystemFonts();
log.debug("addSystemFonts ret:{}", ret);
converterProperties.setFontProvider(fontProvider);
HtmlConverter.convertToPdf(html, new FileOutputStream(tempFile.toFile()), converterProperties);
log.trace("Converted PDF = {}", tempFile.toString());
return tempFile;
} catch (IOException e) {
e.printStackTrace();
}
return tempFile;
}
}
附maven配置:
com.itextpdfitext7-core7.1.9pomcom.itextpdfhtml2pdf2.1.7