【发布时间】:2019-04-15 06:11:30
【问题描述】:
我无法从 html 获取我的 PDF 中的特殊字符。我尝试使用 UTF-8 读取、Windows-1257、ISO-8859-13 等。但没有任何效果,我只是得到空格。
那么问题是如何解决这个问题?
JAVA
String d1 = "<html><head></head><body>...ą...č...ę...ė...į...š...ų...ū...ž...Ą...Č...Ę...Ė...Į...Š...Ų...Ū...Ž...</body></html>";
OutputStream myFile = new FileOutputStream(new File("C:\\My\\pdf1.pdf"));
Document document = new Document();
document.addCreationDate();
document.setPageSize(PageSize.A4);
document.setMargins(36, 36, 36, 36);
document.setMarginMirroring(true);
PdfWriter writer = PdfWriter.getInstance(document, myFile);
document.open();
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
InputStream is;
//is = new ByteArrayInputStream(d1.getBytes(StandardCharsets.UTF_8));
is = new ByteArrayInputStream(d1.getBytes("UTF-8"));
String FONT = "C:\\My\\FreeSans.ttf";
XMLWorkerFontProvider fontImp = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
fontImp.register(FONT);
worker.parseXHtml(writer, document, is, Charset.forName("UTF-8"), fontImp);
document.close();
myFile.close();
【问题讨论】:
-
您的 html 的
body-tag 中是否缺少style-属性?String d1 = "<html><head></head><body style=\"font-family: FreeSans\">...ą...č...ę...ė...į...š...ų...ū...ž...Ą...Č...Ę...Ė...Į...Š...Ų...Ū...Ž...</body></html>";