【发布时间】:2012-11-05 21:26:38
【问题描述】:
我正在使用 flying saucer 和 iText 2.1.7 来转换 html to pdf。它工作正常,但是当html中有一些中文,韩文等字符时会出现问题。
我的 PDF 中出现了意想不到的字符,而不是正常的中文字符
我发现this issue 已打开,所以我认为目前没有办法让飞碟正确呈现 PDF?
PS:我也找到了this issue,但是我无法理解他们提供的解决方案。
这是我正在使用的代码
String doc = file.toURI().toURL().toString();
ITextRenderer renderer = new ITextRenderer();
renderer.getFontResolver().addFont (
"C:\\ARIALUNI.TTF",
BaseFont.IDENTITY_H,
BaseFont.EMBEDDED
);
renderer.setDocument(doc);
String outputFile = "report.pdf";
OutputStream os = new FileOutputStream(outputFile);
renderer.layout();
renderer.createPDF(os);
os.flush();
os.close();
file 是我要转换的 html。
还有其他方法或库可以做同样的事情吗?
这是我正在使用的 css
@font-face {
font-family: "Arial";
src: url("media/arialuni.ttf");
-fs-pdf-font-embed: embed;
-fs-pdf-font-encoding: Identity-H;
}
我需要转换的HTML file
These是重新编译的飞碟jar,兼容itext 2.1..x
【问题讨论】:
-
试试,怎么样?如何将 UTF-16 传递给飞碟
-
出现什么问题?您是否遇到异常,或者您的 PDF 中是否有意外字符?
-
我的 PDF 中出现了意想不到的字符,而不是正常的汉字
-
根据你上一个问题的解决方法,貌似是字体问题!
-
您是否尝试过第二个链接中所说的内容:
renderer.getFontResolver().addFont("yourFont-unicode-ready.ttf", "UTF-8", BaseFont.IDENTITY_H);?
标签: java itext flying-saucer html-to-pdf