【问题标题】:Flying Saucer iTextPDF Chinese Fonts飞碟 iTextPDF 中文字体
【发布时间】:2013-05-24 10:51:14
【问题描述】:

我正在使用 FlyingSaucer(R8pre2 版本)将 XHTML 转换为 PDF。

HTML 包含中文字符,并且使用 MS Mincho 字体。

文档已转换,但转换后的 PDF 中缺少所有中文字符。

知道如何解决这个问题吗?

代码:

OutputStream os = new FileOutputStream("output.pdf");
String inputFile = "input.html";
String url = new File(inputFile).toURI().toURL().toString();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
os.close();

【问题讨论】:

  • 你能展示你的源代码吗?
  • 请查看更新后的问题,其中包含将 XHTML 转换为 PDF 的代码
  • 我没有看到你加载字体。加载中文字体并确保内容为 UTF-8。类似案例:stackoverflow.com/questions/10231194/…
  • 我明白了。加载必要的字体后,中文字符现在显示在生成的 PDF 上。谢谢:)

标签: java fonts itext flying-saucer


【解决方案1】:

在显示中文字体之前需要加载中文字体。例如:

renderer.getFontResolver().addFont("fonts/TIMES.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.getFontResolver().addFont("fonts/TIMESBD.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.getFontResolver().addFont("fonts/TIMESBI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.getFontResolver().addFont("fonts/TIMESI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

【讨论】:

    猜你喜欢
    • 2012-10-01
    • 2011-03-20
    • 2018-11-18
    • 2023-04-07
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    相关资源
    最近更新 更多