iText:无法打印∈,∩,Σ,∫,Δ√,mathematical等数学字符

时间:2015-07-07 12:43:41

标签: itext

我正在使用iText 4.0.2版本进行pdf生成。我有一些字符/符号可以打印,如∈,∩,Σ,∫,△(数学符号)等等。 我的代码:

<br/>
<div class="gridContainer clearfix">
  <div id="top" class="fluid"></div>
  <div id="menu" class="fluid">Forside - Produkter - Priser - Om - Kontakt</div>
  <div id="midt" class="fluid">Hvad så der?</div>
  <div id="bund" class="fluid"></div>
</div>

在上面的代码中,我将所有符号放在 Document document = new Document(PageSize.A4, 60, 60, 60, 60); try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("/home/adeel/experiment.pdf")); document.open(); String str = "this string will contains special character like this ∈, ∩, ∑, ∫, ∆"; BaseFont bfTimes = null; try { bfTimes = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.EMBEDDED); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Font fontnormal = new Font(bfTimes, 12, Font.NORMAL, Color.BLACK); Paragraph para = new Paragraph(str, fontnormal); document.add(para); document.close(); writer.close(); System.out.println("Done!"); } catch (DocumentException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } 中并生成pdf文件。代替符号,我尝试在str中为符号添加unicode字符,但它也不起作用。

1 个答案:

答案 0 :(得分:2)

请查看MathSymbols示例。

  • 首先,您需要一种支持所需符号的字体。顺便说一下,FreeSans.ttf就是这样的字体。然后你需要使用正确的编码。
  • 您使用的是UNICODE,因此需要person.pickUp(object) 作为编码。
  • 您还应该使用Identity-H\u2208\u2229\u2211\u222b等符号。这不是必须的,但这是一种很好的做法。

这就是它的完成方式:

\u2206

结果如下所示:math_symbols.pdf

enter image description here

重要提示:您应该始终使用iText的最新官方版本。 iText 4.0.2 不是正式版。