1

设置

我正在使用 iText 5.3.0 和 Fedora 17,使用 PDF 阅读器 llpp 和 evince 进行测试。我的 IDE 是 Eclipse Indigo r2。我的终端是 urxvt,字体与 PDF 中使用的字体相同。

问题

其他 unicode 字符显示得很好。iText 书中的清单 11.3 显示得很好。但是试图得到一个带有下划线的 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();
}

我发现了一封来自 Paulo Soares的古老的、可能相关的电子邮件,上面写着“必须在将文本呈现给 iText 之前完成字符组合”。

我不确定这意味着什么,或者如何去做,或者它是否仍然相关。

预期/实际

我期望:一个带有 X 的 PDF,在 X 下方有一条线,即 X̲。

我得到:带有 X 的 PDF,没有行。

4

2 回答 2

0

看来我的 pdf 查看器显示不正确。我从 pdf 查看器复制并粘贴了文本输出,复制到我的终端(我已经验证了这个字符的工作),然后查看 X̲.

复制和粘贴作品

  • llpp 与 mupdf 版本 a606f714258677688c67e9561b87cc70f9e9b6b0
  • adobe 阅读器 9.5.1

但不适用于 evince 3.4.0 (poppler 0.18.4)。复制的文本只是一个普通的 X。

所以看来 iText 没有错。

于 2012-12-03T21:41:39.073 回答
0

您的角色是非间距角色,请参见此处

编辑页面说它左右连接,所以我的回答不是很有用:(

于 2012-11-14T21:19:01.737 回答