【问题标题】:Unicode characters in iText PDFiText PDF 中的 Unicode 字符
【发布时间】:2012-03-04 16:35:36
【问题描述】:

我需要有关 iText 的帮助。我查看了一些 Google 搜索结果和一些搜索结果,但没有找到适合我的任何内容。我需要在我的 pdf 中使用波兰语字符,但我一无所获。如果需要在评论中写下其他内容,我认为这是一个很重要的代码:

private static Font bigFont = new Font(Font.FontFamily.HELVETICA, 18, Font.BOLD);

另一个

Paragraph par = new Paragraph(Łabadzak, bigFont);

谁能告诉我如何使 Ł 在 pdf 和其他波兰字符中可见

更新 我资助了这个,但不知道如何将它用于我的项目 Polish character in itext PDF

【问题讨论】:

    标签: java swing special-characters itext


    【解决方案1】:

    您需要一个 unicode 字体。这是一个例子:

    BaseFont bf = BaseFont.createFont("arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    
    Paragraph p = new Paragraph("Şinasi ıssız ile ağaç", new Font(bf, 22));
    
    document.add(p);
    

    http://abdullahakay.blogspot.com/2011/11/java-itext-unicode.html

    编辑:

    这里,字体文件名arialuni.tff 是直接在/src/main/resources/ 下的静态资源,可以是您选择的任何Unicode 字体文件。 Here 是在线提​​供的免费 Unicode 字体文件列表。

    【讨论】:

    • 好的,我用你的代码和我从 Kamil thx 那里得到帮助的东西来做这个
    • 使用 FontFactory 的方式:FontFactorygetFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.EMBEDDED, 12)
    • 如何将新字体注册为类的静态字段,例如 MyFont?在任何我想要的地方使用它作为 MyFont.ARIALUNI
    【解决方案2】:

    这取决于使用的字体和编码。我发现了这样的东西:

    http://itext-general.2136553.n4.nabble.com/Polish-National-Characters-are-not-getting-displayed-in-the-PDF-created-by-iTExt-td2163833.html

    有这样的例子:

    BaseFont bf = BaseFont.createFont("c:/windows/fonts/arial.ttf", 
    BaseFont.CP1250, BaseFont.EMBEDDED); 
    Font font = new Font(bf, 12); 
    String polish = "\u0104\u0105\u0106\u0107\u0118\u0119"; 
    document.add(new Paragraph(polish, font)); 
    

    请记住,有些字体不包含波兰国家字符。

    【讨论】:

      【解决方案3】:

      如果您使用的是 com.itextpdf.kernel 包,您可以使用 PdfEncodings 类中不存在的任何编码

      PdfWriter writer ;
      writer = new PdfWriter( dest ) ;
      PdfDocument pdf = new PdfDocument( writer ) ;
      
      Document document = new Document( pdf ) ;
      
      FontProgram fontProgram = FontProgramFactory.createFont( ) ;
      PdfFont font = PdfFontFactory.createFont( fontProgram, "Cp1254" ) ;
      document.setFont( font );
      

      对于土耳其字符,我使用“Cp1254”

      【讨论】:

        猜你喜欢
        • 2012-09-14
        • 2016-09-02
        • 2019-02-28
        • 2015-05-31
        • 1970-01-01
        • 1970-01-01
        • 2012-09-27
        • 1970-01-01
        相关资源
        最近更新 更多