我正在使用iText 5.3.0和Fedora 17,使用PDF阅读器测试llpp和evince。我的IDE是Eclipse Indigo r2。我的终端是urxvt,其字体与PDF中使用的字体相同。
其他unicode字符显示就好了。 iText书中的清单11.3显示就好了。但尝试获取带有an underline的X,X,如"X\u0332"
,则不会显示在PDF上。我可以使用System.out.println
将字符串记录到终端,它可以正常工作。这是我正在尝试的一个例子:
public static void main(String[] args) throws DocumentException, IOException {
Document document = new Document(PageSize.LETTER);
PdfWriter.getInstance(document, new FileOutputStream("fnord.pdf"));
document.open();
FontFactory.register("fonts/mplus-1mn-regular.ttf", "mplus");
Font font = FontFactory.getFont(
"mplus",
BaseFont.IDENTITY_H,
BaseFont.EMBEDDED,
12
);
String s = "X\u0332";
System.out.println(s);
document.add(new Paragraph(s, font));
document.close();
}
我发现一个古老的,可能相关的email from Paulo Soares说法“必须在将文字呈现给iText之前完成”。
我不确定这意味着什么,或者如何做,或者它是否仍然相关。
我希望:一张带有X的PDF,X下面有一行,即X.
我得到:带有X的PDF,没有行。
答案 0 :(得分:0)
你的角色是一个非空间,see here
编辑页面说它左右连接,所以我的答案不是很有用:(
答案 1 :(得分:0)
我的pdf观看者似乎没有正确显示。我复制并粘贴了pdf查看器中的文本输出,复制到我的终端(我已经验证了这个角色的工作),然后看到X.
复制和粘贴工作在
但是在evince 3.4.0(poppler 0.18.4)中不起作用。复制的文本只是一个简单的X。
所以似乎iText没有错。