前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 iTextSharp VS ComPDFKit 在 C# 中从 PDF 中提取文本

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

作者头像
Youna
发布2024-09-13 09:55:48
1170
发布2024-09-13 09:55:48

在这个信息爆炸的时代,我们利用大量数据来训练人工智能大型语言模型、建立数据库等,旨在筛选有价值的信息。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。然后,按照以下步骤插入许可证。

代码语言:javascript
复制
string resPath = "***";
string libPath = "***";
string license = "***";
CPDFConverter.InitLibrary(libPath);
CPDFConverter.InitResource(resPath);
CPDFConverter.LicenseVerify(license);

从 PDF 中提取文本

要使用 ComPDFKit 从 C# 中的 PDF 文档中提取文本,只需按照这些代码示例操作即可。

代码语言:javascript
复制
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 文件中提取文本。

代码语言:javascript
复制
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在性能和代码可读性方面更胜一筹。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 如何使用 ComPDFKit 在 C# 中从 PDF 中提取文本?
    • 下载用于文本提取的 ComPDFKit C# 库
      • 创建新的 Windows 项目并应用许可证
        • 从 PDF 中提取文本
        • 2. 如何使用 iTextSharp 从 PDF 中提取文本?
        • 文本提取 C# 库比较
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档