使用 iTextSharp VS ComPDFKit 在 C# 中从 PDF 中提取文本

在这个信息爆炸的时代,我们利用大量数据来训练人工智能大型语言模型、建立数据库等,旨在筛选有价值的信息。PDF 文档是主要数据源之一,包含大量有价值的信息。对于开发人员来说,从 PDF 中提取文本是有效数据提取的第一步。
 
 
你们中的一些人可能会担心如何使用 C# 从 PDF 中提取文本。iTextSharp 一直是 PDF 文本提取的有效解决方案。在本指南中,我们将深入研究如何使用 iTextSharp 在 C# 中进行 PDF 文本提取,涵盖从安装和项目设置到提供代码示例的所有内容。此外,我们将介绍并将其与另一个强大的 C# 库 ComPDFKit 进行比较,以帮助您做出明智的决策。
 

1. 如何使用 ComPDFKit 在 C# 中从 PDF 中提取文本?

下载用于文本提取的 ComPDFKit C# 库

首先,您需要 在 Nuget 中下载并安装 ComPDFKit C# 库。请确保您已满足下面列出的系统要求。
  • 平台: Windows
  • 系统要求: Windows 7、8、10 和 11(32 位、64 位)
  • 集成开发环境: Visual Studio 2017 或更高版本
  • 框架要求: .NET Framework 4.6.1 或更高版本
 

创建新的 Windows 项目并应用许可证

按照我们文档中关于C#库如何集成的说明 创建一个新项目。之后, 联系我们的销售人员 获取免费试用许可证以初始化 ComPDFKit 转换 SDK。然后,按照以下步骤插入许可证。
string resPath = "***";
string libPath = "***";
string license = "***";
CPDFConverter.InitLibrary(libPath);
CPDFConverter.InitResource(resPath);
CPDFConverter.LicenseVerify(license);

 

 

从 PDF 中提取文本

要使用 ComPDFKit 从 C# 中的 PDF 文档中提取文本,只需按照这些代码示例操作即可。
string inputFilePath = "***";
string outputFolderPath = "***";
string outputFileName = "***";

CPDFConverterJsonText converter = CPDFConvertFactroy.CreateConverter(CPDFConvertType.CPDFConvertTypeJsonText, inputFilePath) as CPDFConverterJsonText;

CPDFConvertJsonOptions jsonOptions = new CPDFConvertJsonOptions();
jsonOptions.IsAllowOCR = false;

ConvertError error = ConvertError.ERR_UNKNOWN;
jsonTextConverter.Convert(outputFolderPath, ref outputFileName, jsonOptions, ref error);

 

注意
• 禁用OCR(光学字符识别)可能导致无法从图像中的表格中提取文本。
• 当我们使用 CPDFConverterJsonText 类访问 PDF 文档的内容流时,我们经常会遇到零散的数据。例如,假设我们试图从 PDF 文档中提取“这是一个示例句子。”这句话。您可能最终会将其部分检索为单独的内容流,如“这”和“是一个示例句子。”。发生这种情况的原因是 PDF 中的文本对象并不总是整齐地组织成单词、句子或段落。当未启用 OCR 时, CPDFConverterJsonText 类将返回 与 PDF 页面内容流中定义完全相同的文本对象。
 

2. 如何使用 iTextSharp 从 PDF 中提取文本?

使用 iTextSharp 进行文本提取的步骤与 ComPDFKit 类似。安装 iTextSharp PDF 库并创建项目后。按照以下示例使用 iTextSharp C# 库从 PDF 文件中提取文本。
using System;
using System.Text;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;

namespace PDFApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = @"C:\Users\buttw\OneDrive\Desktop\highlighted PDF.pdf";
            string outPath = @"C:\Users\buttw\OneDrive\Desktop\name.txt";
            int pagesToScan = 2;

            string strText = string.Empty;
            try
            {
                PdfReader reader = new PdfReader(filePath);
                for (int page = 1; page <= pagesToScan; page++) 
                {
                    ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
                    strText = PdfTextExtractor.GetTextFromPage(reader, page, its);

                    strText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(strText)));
                    string[] lines = strText.Split('\n');
                    foreach (string line in lines)
                    {
                        using (System.IO.StreamWriter file = new System.IO.StreamWriter(outPath, true))
                        {
                            file.WriteLine(line);
                        }
                    }
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.Write(ex);
            }
        }
    }
}

 

 

文本提取 C# 库比较

毫无疑问,iTextSharp 是一个功能强大的 C# PDF 文本提取库。作为一个开源库,它始终是开发人员将常见 PDF 功能集成到其应用程序中的首选解决方案。与 ComPDFKit 相比,很明显,使用 iTextSharp 需要编写冗长而复杂的代码,而 ComPDFKit 仅需不到 10 行代码即可从 PDF 中提取文本。
 
使用 iTextSharp,开发人员需要编写自定义代码或逻辑来实现所需的功能,这需要对库和 C# 有深入的了解。幸运的是,ComPDFKit C# 库提供了开箱即用的功能,使文本提取对开发人员来说是一个方便的过程。
 
 
因此,在ComPDFKit与iTextSharp在PDF文本提取准确率相近的前提下,ComPDFKit在性能和代码可读性方面更胜一筹。
posted @ 2024-09-13 09:57  ComPDFKit  阅读(50)  评论(0编辑  收藏  举报