Luc*_*ers 12 java pdf unicode utf-8 pdfbox
我无法使用PDFBox将unicode字符写入PDF.下面是一些生成垃圾字符而不是输出"š"的示例代码.我可以添加什么来获得对UTF-8字符串的支持?
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
PDType1Font font = PDType1Font.HELVETICA;
contentStream.setFont(font, 12);
contentStream.beginText();
contentStream.moveTextPositionByAmount(100, 400);
contentStream.drawString("š");
contentStream.endText();
contentStream.close();
document.save("test.pdf");
document.close();
Run Code Online (Sandbox Code Playgroud)
您正在使用Adobe Reader附带的内置"Base 14"字体之一.这些字体不是Unicode; 它们实际上是一个标准的拉丁字母,但有几个额外的字符.它看起来像你提到的人物,一个小写的s的一个卡伦(S)是不是在PDF拉丁文本提供...虽然大写Š 是可用的,但奇怪的只能在Windows上.有关详细信息,请参阅http://www.adobe.com/devnet/pdf/pdf_reference.html上 PDF规范的附录D.
无论如何,要点......如果你想使用Unicode字符,你需要嵌入一个Unicode字体.确保你被许可嵌入你决定的任何字体...我可以推荐开源的Gentium或Doulos字体,因为它们是免费的,高质量的并且具有全面的Unicode支持.
归档时间: |
|
查看次数: |
18632 次 |
最近记录: |