首页 > 解决方案 > iText 7 PDF 解析器在 C# 中返回不可读的字符

问题描述

我正在尝试使用 iText 7(最新版本)从 PDF 文件中提取文本。当我运行下面的代码时,它会从我给它的每个 PDF 中提取文本,除了来自客户端的文本(当然)。他们有一个非常古老的会计系统,PDF 文件返回不可读的文本(带问号的菱形)。

我可以将他们的 PDF 文件加载到 Adob​​e Reader 中,并将文本完美地复制/粘贴到记事本中。他们的 PDF 由 Ghostscript 创建,PDF 文件版本为 1.7。

我曾多次使用 iText,但从未遇到过这种情况。下面注释掉的行是我尝试查看它是否是某种编码问题。我正在使用 VS2019 使用 C# 进行编码,并通过 Nuget 安装了 iText 7。感谢您的时间!

        string fileName = @"c:\users\default\desktop\test\invoice.pdf";

        StringBuilder text = new StringBuilder();

        if (File.Exists(fileName))
        {
            PdfDocument pdfReader = new PdfDocument(new PdfReader(fileName));
            for (int page = 1; page <= pdfReader.GetNumberOfPages(); page++)
            {
                ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
                String currentText = PdfTextExtractor.GetTextFromPage(pdfReader.GetPage(page), strategy);
                //currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));

                outputtextBox.AppendText(currentText);
            }
            pdfReader.Close();
        }

标签: c#parsingpdfitext

解决方案


推荐阅读