关于pdf中Unicode的问题

关于pdf中Unicode的问题,pdf,unicode,Pdf,Unicode,我已经写了一个代码,它可以生成简单的pdf文档。但我无法将unicode字符呈现为pdf格式。任何建议都将不胜感激。假设您有以下Unicode格式的字符串: public static final String CZECH = "Podivn\u00fd p\u0159\u00edpad Dr. Jekylla a pana Hyda"; public static final String RUSSIAN = "\u0421\u0442\u0440\u0430\

我已经写了一个代码,它可以生成简单的pdf文档。但我无法将unicode字符呈现为pdf格式。任何建议都将不胜感激。

假设您有以下Unicode格式的
字符串:

public static final String CZECH =
        "Podivn\u00fd p\u0159\u00edpad Dr. Jekylla a pana Hyda";
public static final String RUSSIAN =
        "\u0421\u0442\u0440\u0430\u043d\u043d\u0430\u044f "
        + "\u0438\u0441\u0442\u043e\u0440\u0438\u044f "
        + "\u0434\u043e\u043a\u0442\u043e\u0440\u0430 "
        + "\u0414\u0436\u0435\u043a\u0438\u043b\u0430 \u0438 "
        + "\u043c\u0438\u0441\u0442\u0435\u0440\u0430 "
        + "\u0425\u0430\u0439\u0434\u0430";
public static final String KOREAN =
        "\ud558\uc774\ub4dc, \uc9c0\ud0ac, \ub098";
然后,您需要找到能够呈现这些字符的字体程序。例如:

public static final String FONT = "src/main/resources/fonts/FreeSans.ttf";
public static final String HCRBATANG = "src/main/resources/fonts/HANBatang.ttf";
FreeSans是Linux附带的免费字体;它支持很多语言,但不是所有语言。例如:不支持韩语,因此我们也使用韩语巴塘

我们使用这些字体程序创建
PdfFont
对象,并在
段落
对象中使用这些对象:

PdfFont freeUnicode =
    PdfFontFactory.createFont(FONT, PdfEncodings.IDENTITY_H, true);
document.add(new Paragraph().setFont(freeUnicode)
    .add(CZECH).add(" by Robert Louis Stevenson"));
document.add(new Paragraph().setFont(freeUnicode)
    .add(RUSSIAN).add(" by Robert Louis Stevenson"));
PdfFont fontUnicode =
    PdfFontFactory.createFont(HCRBATANG, PdfEncodings.IDENTITY_H, true);
document.add(new Paragraph().setFont(fontUnicode)
    .add(KOREAN).add(" by Robert Louis Stevenson"));
结果显示在以下屏幕截图中:

如您所见,使用iText 7时呈现Unicode非常简单。此示例取自本教程的第1部分


如果这不是您要查找的信息,请解决您的问题,并解释您使用的是哪种工具而不是iText,以及哪种编程语言。

我建议您提供一些更具体的信息。如果你仅仅说你写了一段代码,生成了简单的pdf文档,我们怎么知道你做错了什么?所有要说的是你做错了。你用哪个库来创建PDF(iText或其他工具)?您使用的是哪种编程语言(Java、C#、…)?很难相信你会期望对这样一个不完整的问题有一个明确的答案。