ITextFontResolver fontRes = renderer.getFontResolver();
// Field fontFagliesField = ITextFontResolver.class.getDeclaredField("_fontFamilies");
// fontFagliesField.setAccessible(true);
// Map<String, ?> fontFamiliesMap = (Map<String, ?>) fontFagliesField.get(fontRes);
// fontFamiliesMap.remove("Helvetica");
loadFont(fontRes);
renderer.setDocument(getSampleDocument(), null);
doRenderToPDF(renderer, FILE_OUT);
}
private static void loadFont(ITextFontResolver poF) throws Exception {
for (String lsFontFile : FONT_FILES) {
File lfFile = new File(FONT_DIR + lsFontFile);
poF.addFont(lfFile.getAbsolutePath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
}
}
private static void doRenderToPDF(ITextRenderer renderer, String pdf) throws Exception {
try (OutputStream os = new FileOutputStream(pdf)) {
renderer.layout();
renderer.createPDF(os);
}
}
private static Document getSampleDocument() throws Exception {
String lsSampleGreekDoc = //
+ "<head>\r\n" //
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n" //
+ "<title>Test</title>\r\n"//
+ "</head>\r\n" //
+ "<body>\r\n" //
+ "<div style=\"font-family: Helvetica; font-size: 16pt;\">\r\n" //
+ " <del>Helvetica:</del>1¶ 2µ 3α 4β 5δ 6ε " //
+ "7ζ 8ω 9♥ 10µ 11Θ 12Ξ 13Σ\r\n" //
+ "</div>\r\n" //
+ "</body>\r\n" //
+ "</html>"; //
DocumentBuilder loDocumentBuilderXml = DocumentBuilderFactory.
newInstance().newDocumentBuilder();
loDocumentBuilderXml.setEntityResolver(FSEntityResolver.instance());
ByteArrayInputStream loArrayInputStream = new ByteArrayInputStream(lsSampleGreekDoc.getBytes(StandardCharsets.UTF_8));
return loDocumentBuilderXml.parse(loArrayInputStream);
}
}