PDF使用Flying Saucer生成多语言文本

时间:2014-07-22 06:49:01

标签: java pdf flying-saucer

我正在尝试使用Flying Saucer库以PDF格式打印阿拉伯语和英语文本。这是我的代码:

    String inputFile = "D:/test.xhtml";
    String url = new File(inputFile).toURI().toURL().toString();
    String outputFile = "D:/doc.pdf";
    OutputStream os = new FileOutputStream(outputFile);

    ITextRenderer renderer = new ITextRenderer();
    ITextFontResolver resolver = renderer.getFontResolver();
    resolver.addFont("D:/arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

    renderer.setDocument(url);
    renderer.layout();
    renderer.createPDF(os);

    os.close();

我的XHTML文件包含段落标记中的以下数据: اباباباب你好

生成的输出仅显示英文字符,但不显示阿拉伯字形。请帮忙。

1 个答案:

答案 0 :(得分:0)

  

由于某种原因,如果没有使用特定字体,生成的PDF使用某种默认(可能是Helvetica)字体,其中包含非常有限的字符集,显然不包含希腊语代码页。   Reference

Arial是一种非常标准的字体,默认安装在大多数操作系统中,并实现了各种各样的字母(包括希腊文)。