iText Java:不添加音讯符号

在我们的项目中,我们需要在我们的PDF上打印录音符号(℗)。 找到之后,我们必须为此(或其他任何字体,但是arial会这样做)使用Arial,我们将该字体添加到项目中。 但是,当试图打印pdf时,表音符号不会被打印出来。

我们使用iText 5.5.0并添加IDENTITY_H编码的arial.ttf。 如果我理解正确,这应该启用字体中的所有字符。 任何人都可以指出哪里出了问题? 我们的字体文件可能存在问题,或者iText会扰乱我们?

此代码创建一个带有字母f和音标字符的pdf。 在这个测试类中,唱片字符也不会被打印出来。

public class TestPdf {

    public static void main(String[] args) throws FileNotFoundException, DocumentException {
        // Step 1: create document
        Document document = new Document();
        // Step 2: get instance of PdfWriter
        PdfWriter.getInstance(document, new FileOutputStream("myfile.pdf"));
        // Step 3: open document
        document.open();
        // Step 4: prepare paragraph
        Font arial12 = ArialFont.ofSize(12);
        Paragraph paragraph = new Paragraph("The letter f: u0066 nThe phonogram symbol: u2117");
        paragraph.setFont(arial12);
        // Step 5: add paragraph
        document.add(paragraph);
        // Step 6: close document
        document.close();
    }

    public static class ArialFont {

        protected static BaseFont arialFont;

        public static Font ofSize(int size) {
            return new Font(getBaseFont(), size);
        }

        public static BaseFont getBaseFont() {
            try {
                if (arialFont == null) {
                    arialFont = BaseFont.createFont("/fonts/ARIAL.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
                }
                return arialFont;
            } catch (DocumentException e) {
                throw new IllegalStateException(e);
            } catch (IOException e) {
                throw new IllegalStateException(e);
            }
        }
    }
}

尝试这样做:

Font arial12 = ArialFont.ofSize(12);
Paragraph paragraph = new Paragraph("The letter f: u0066 nThe phonogram symbol: u2117", arial12);

为什么? 说实话我不知道。 这似乎是设置段落文本后设置字体的错误。 我运行了你的代码,发现你的pdf没有嵌入Arial字体。

为了调试PDF文件,我使用了一组名为XPdf的命令行工具:

http://www.foolabs.com/xpdf/

您可以使用pdffonts <filename>调用来检查pdf文件中的嵌入或引用字体。

链接地址: http://www.djcxy.com/p/65455.html

上一篇: iText Java: Not adding phonogram symbol

下一篇: Preserving Embedded Fonts in iText