itext pdf文件打印中文无法识别问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了itext pdf文件打印中文无法识别问题相关的知识,希望对你有一定的参考价值。

参考技术A   经常用ITEXT生成一些PDF文件,最近发现生成的PDF文件如果不在WINDOWS系统打印会出现中文字体打印不出来,例如手机端(包括一些PDF查看工具),查了一些资料是字体库的问题。
  ITEXT程序中创建字体有三种方法:

  经常用的是第一种方法。第二种和第三种方法都是引用另外的TTF字体库。这里用iTextAsian字体库出现问题,参考 http://blog.csdn.net/birdfromforest/article/details/49903751 文章中的方法,引用windows系统中的STSONG.TTF字体库(位置:C:\Windows\Fonts\),把STSONG.TTF拷到自己的路径中也可以,则换为:

  生成PDF后直接在手机上查看或打印,或在打印机上直接通过U盘打印没有异常。

使用 iText 库读取 pdf 文件 [关闭]

【中文标题】使用 iText 库读取 pdf 文件 [关闭]【英文标题】:Reading a pdf file using iText library [closed] 【发布时间】:2011-05-02 04:43:44 【问题描述】:

我是安卓新手。我计划开发一个PDF查看器。我听说有一个名为 iText 的库可用于开发 PDF 查看器。请告诉我如何在 Android 中使用 iText 库以及如何使用该库开发应用程序。

【问题讨论】:

我们可以回答有关库如何工作的具体问题,但我们无法告诉您如何编写整个应用程序。如果您的需求发生变化,请随时提出另一个(更具体的)问题。 【参考方案1】:

试试这个

public class ReadAndUsePdf 
    private static String INPUTFILE = "c:/temp/FirstPdf.pdf";
    private static String OUTPUTFILE = "c:/temp/ReadPdf.pdf";

    public static void main(String[] args) throws DocumentException,
            IOException 
        Document document = new Document();

        PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream(OUTPUTFILE));
        document.open();
        PdfReader reader = new PdfReader(INPUTFILE);
        int n = reader.getNumberOfPages();
        PdfImportedPage page;
        // Go through all pages
        for (int i = 1; i <= n; i++) 
            // Only page number 2 will be included
            if (i == 2) 
                page = writer.getImportedPage(reader, i);
                Image instance = Image.getInstance(page);
                // here you can show image on your phone
            
        
        document.close();

    


【讨论】:

如何显示 com.itextpdf.text.Image 对象?

以上是关于itext pdf文件打印中文无法识别问题的主要内容,如果未能解决你的问题,请参考以下文章

批处理文件无法识别添加打印机

GraphicsMagick 无法识别 PDF 的背景透明度

iText 7:此 pdf 文档可能无法正确显示 Firefox

打印机USB无法识别怎么办!

简单易用的OCR文字识别工具:iText for Mac

为啥电脑无法识别USB打印机?