在这个信息爆炸的时代,我们利用大量数据来训练人工智能大型语言模型、建立数据库等,旨在筛选有价值的信息。PDF 文档是主要数据源之一,包含大量有价值的信息。对于开发人员来说,从 PDF 中提取文本是有效数据提取的第一步。
你们中的一些人可能会担心如何使用 C# 从 PDF 中提取文本。iTextSharp 一直是 PDF 文本提取的有效解决方案。在本指南中,我们将深入研究如何使用 iTextSharp 在 C# 中进行 PDF 文本提取,涵盖从安装和项目设置到提供代码示例的所有内容。此外,我们将介绍并将其与另一个强大的 C# 库 ComPDFKit 进行比较,以帮助您做出明智的决策。
首先,您需要 在 Nuget 中下载并安装 ComPDFKit C# 库。请确保您已满足下面列出的系统要求。
按照我们文档中关于C#库如何集成的说明 创建一个新项目。之后, 联系我们的销售人员 获取免费试用许可证以初始化 ComPDFKit 转换 SDK。然后,按照以下步骤插入许可证。
string resPath = "***";
string libPath = "***";
string license = "***";
CPDFConverter.InitLibrary(libPath);
CPDFConverter.InitResource(resPath);
CPDFConverter.LicenseVerify(license);
要使用 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 页面内容流中定义完全相同的文本对象。
使用 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);
}
}
}
}
毫无疑问,iTextSharp 是一个功能强大的 C# PDF 文本提取库。作为一个开源库,它始终是开发人员将常见 PDF 功能集成到其应用程序中的首选解决方案。与 ComPDFKit 相比,很明显,使用 iTextSharp 需要编写冗长而复杂的代码,而 ComPDFKit 仅需不到 10 行代码即可从 PDF 中提取文本。
使用 iTextSharp,开发人员需要编写自定义代码或逻辑来实现所需的功能,这需要对库和 C# 有深入的了解。幸运的是,ComPDFKit C# 库提供了开箱即用的功能,使文本提取对开发人员来说是一个方便的过程。
因此,在ComPDFKit与iTextSharp在PDF文本提取准确率相近的前提下,ComPDFKit在性能和代码可读性方面更胜一筹。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。