当前位置: 首页 > wzjs >正文

网站开发充值功能dw个人网站设计模板免费

网站开发充值功能,dw个人网站设计模板免费,商城网站开发的任务书,推广软件是什么在文档管理系统、法律审查工具、发票处理工具和其他企业应用程序中,搜索PDF文档中的特定文本是一项常见任务。无论您是尝试查找关键字、提取特定值还是遮盖敏感信息,自动化 PDF 搜索都能为您节省大量时间和精力。 在本篇博文中,您将学习如何…

在文档管理系统、法律审查工具、发票处理工具和其他企业应用程序中,搜索PDF文档中的特定文本是一项常见任务。无论您是尝试查找关键字、提取特定值还是遮盖敏感信息,自动化 PDF 搜索都能为您节省大量时间和精力。

在本篇博文中,您将学习如何使用 C# 以编程方式在 PDF 文件中搜索文本。我们将通过实际的 C# 代码示例,逐步向您讲解主要功能。

Aspose.PDF最新版下载

用于在 PDF 文档中搜索的 C# 库

Aspose.PDF for .NET简化了使用 C# 在 PDF 文件中搜索文本的过程。它允许您查找精确的单词、使用正则表达式匹配模式,甚至突出显示或替换匹配的文本——所有这些只需几行代码即可完成。这个强大的库提供了用于操作 PDF 文档的强大功能。它允许开发人员轻松实现搜索功能。使用 Aspose.PDF,您可以快速在 PDF 中查找单词,使其成为软件开发人员的宝贵工具。

在深入研究 PDF 文本搜索之前,您需要设置开发环境。请按照以下步骤开始使用 Aspose.PDF for .NET

1.安装 Aspose.PDF for .NET。

从发行版下载或通过NuGet安装。在 Visual Studio 中打开 .NET 项目,然后在 NuGet 包管理器控制台中运行以下命令:

PM> Install-Package Aspose.PDF

此命令将 Aspose.PDF 库添加到您的项目中,以便您可以访问其强大的 PDF 处理功能。

2. 导入所需的命名空间

在 C# 文件的顶部,添加以下使用指令:

using Aspose.Pdf;
using Aspose.Pdf.Text;

现在您已准备好使用 Aspose.PDF 的 API 开始在 PDF 文件中搜索文本。

使用 C# 在 PDF 中搜索文本

使用 Aspose.PDF for .NET,您可以轻松地在 PDF 中搜索特定的单词或短语,找到它们的所有实例,并采取诸如突出显示它们或提取其详细信息等操作。

请按照以下步骤执行基本文本搜索:

  1. 使用Document类加载目标 PDF 文件。
  2. 创建一个TextFragmentAbsorber来定义搜索关键字。
  3. 使用Accept()方法在所有页面运行吸收器。
  4. 检索所有匹配的文本片段。
  5. 打印找到的匹配数。
  6. 循环并显示每个匹配项及其页码。

以下代码示例实现了这些步骤。

// Load the PDF file
Document pdfDocument = new Document("sample.pdf");// Create a text absorber with the search keyword
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("invoice");// Apply the absorber to all pages
pdfDocument.Pages.Accept(textFragmentAbsorber);// Get the matched text fragments
TextFragmentCollection textFragments = textFragmentAbsorber.TextFragments;// Print how many times the keyword was found
Console.WriteLine($"Found {textFragments.Count} instance(s) of the keyword.");// Loop through and print each found text
foreach (TextFragment fragment in textFragments)
{Console.WriteLine($"Text: {fragment.Text} | Page: {fragment.Page.Number}");
}

输出示例

Found 3 instance(s) of the keyword.
Text: invoice | Page: 1
Text: invoice | Page: 2
Text: invoice | Page: 3

此示例演示了一个简单的关键字搜索,该搜索适用于 PDF 中的所有页面。您将看到匹配的文本及其页码。

为了更好地理解代码中发生的情况,下面对所涉及的关键类和方法进行了快速分解:

  • Document:代表整个 PDF 文件。它提供对页面、内容和结构的访问。
  • TextFragmentAbsorber:查找 PDF 中指定字符串或模式的所有匹配项。您还可以启用不区分大小写或基于正则表达式的搜索等功能。
  • Accept():将吸收器应用于每页纸张。它会扫描整个文档并收集匹配的碎片。
  • TextFragments:吸收器返回的所有匹配的文本片段的集合。
  • TextFragment:每个单独的匹配都包含内容、位置和页码等详细信息。

使用 C# 进行不区分大小写和全字搜索

搜索 PDF 内容时,您需要控制系统查找匹配项的方式,以确保结果准确。有时,您可能希望忽略字母大小写(“Invoice” 与 “invoice”),或者只想匹配完整的单词,而不是其他单词中的部分匹配。

Aspose.PDF for .NET 为您提供了实现这两项功能的工具。

默认情况下,搜索区分大小写。要忽略字母大小写,请使用TextSearchOptionswith IgnoreCaseenabled:

// Load the PDF file
Document pdfDocument = new Document("sample.pdf");// Create a text absorber with a case-insensitive regular expression
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("(?i)INVOICE");// Set text search options to enable regular expression usage
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;// Apply the absorber to all pages
pdfDocument.Pages.Accept(textFragmentAbsorber);// Retrieve the matched text fragments
TextFragmentCollection textFragments = textFragmentAbsorber.TextFragments;// Output the number of matches found
Console.WriteLine($"Found {textFragments.Count} instance(s) of the keyword.");// Loop through and display each found text fragment
foreach (TextFragment fragment in textFragments)
{Console.WriteLine($"Text: {fragment.Text} | Page: {fragment.Page.Number}");
}

这将找到“发票”、“发票”、“发票”和其他变体。

仅匹配整个单词

您还可以阻止部分匹配。例如,搜索“car不应匹配”care或scar“”。

// Load the PDF file
Document pdfDocument = new Document("sample.pdf");// Create a text absorber with a regular expression pattern for whole word match
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"\bcar\b");// Set text search options to enable regular expression usage
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;// Apply the absorber to all pages
pdfDocument.Pages.Accept(textFragmentAbsorber);// Retrieve the matched text fragments
TextFragmentCollection textFragments = textFragmentAbsorber.TextFragments;// Output the number of matches found
Console.WriteLine($"Found {textFragments.Count} instance(s) of the keyword.");// Loop through and display each found text fragment
foreach (TextFragment fragment in textFragments)
{Console.WriteLine($"Text: {fragment.Text} | Page: {fragment.Page.Number}");
}

这确保只有单词“car”的独立实例被匹配。

使用正则表达式在 PDF 中搜索

在某些情况下,您需要查找的不仅仅是某个特定的单词,您还需要匹配诸如日期、电子邮件地址或参考编号之类的模式。这时,正则表达式 (regex)就派上用场了。

Aspose.PDF for .NET 允许您使用正则表达式在 PDF 文档的任何部分进行高级文本搜索。

示例:查找 PDF 中的所有日期

假设您要查找以下格式的所有日期dd/mm/yyyy:

// Load PDF and search for text
Document pdfDocument = new Document("sample.pdf");// Enable regex in search options
TextSearchOptions searchOptions = new TextSearchOptions(true)
{IsRegularExpressionUsed = true
};// Create absorber with date pattern
TextFragmentAbsorber absorber = new TextFragmentAbsorber(@"\d{2}/\d{2}/\d{4}", searchOptions);// Apply absorber to pages
pdfDocument.Pages.Accept(absorber);// Loop and print found patterns
foreach (TextFragment fragment in absorber.TextFragments)
{Console.WriteLine($"Found date: {fragment.Text} on Page {fragment.Page.Number}");
}

其他有用的模式:

  • 电子邮件:\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b
  • 电话号码:\d{3}[-.\s]??\d{3}[-.\s]??\d{4}
  • 发票号码:INV-\d+

Regex 将您的搜索功能扩展到静态文本之外,帮助您从非结构化文档中提取结构化数据。

搜索并提取包含职位详细信息的文本

有时,仅仅找到文本是不够的——您可能需要知道它在PDF中的确切位置。Aspose.PDF允许您提取每个匹配项的页码坐标格式详细信息。

此功能对于建立索引、标记文档或创建可点击链接特别有用。

示例:获取每场比赛的位置**

// Load PDF and search for text
Document pdfDocument = new Document("sample.pdf");
TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");
pdfDocument.Pages.Accept(absorber);// Get matched fragments
TextFragmentCollection fragments = absorber.TextFragments;// Print position and text for each match
foreach (TextFragment fragment in fragments)
{Console.WriteLine($"Text: {fragment.Text}");Console.WriteLine($"Page: {fragment.Page.Number}");Console.WriteLine($"Position - X: {fragment.Position.XIndent}, Y: {fragment.Position.YIndent}");Console.WriteLine($"Font: {fragment.TextState.Font.FontName}, Size: {fragment.TextState.FontSize}");Console.WriteLine("------------");
}

示例输出

Text: invoice
Page: 1
Position - X: 33.482, Y: 708.246
Font: Helvetica, Size: 12
------------
Text: invoice
Page: 2
Position - X: 33.482, Y: 708.246
Font: Helvetica, Size: 12
------------
Text: invoice
Page: 3
Position - X: 33.482, Y: 708.246
Font: Helvetica, Size: 12
------------

现在,您确切地知道了“发票”一词出现的位置以及它的样式。这种细节水平为高级处理(例如注释、工具提示或动态突出显示)打开了大门。

突出显示或替换找到的文本

在 PDF 中找到特定文本后,您可以进一步操作,例如高亮显示该文本,甚至将其替换为新内容。Aspose.PDF for .NET 允许您使用该对象轻松地设置或修改匹配文本的样式TextFragment。

在 PDF 中搜索并高亮显示文本

您可以通过更改文本的背景和字体颜色来直观地突出显示文本。

TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");
pdfDocument.Pages.Accept(absorber);foreach (TextFragment fragment in absorber.TextFragments)
{// Highlight by changing text appearancefragment.TextState.BackgroundColor = Color.Yellow;fragment.TextState.ForegroundColor = Color.Red;fragment.TextState.FontStyle = FontStyles.Bold;
}

这对于审查、批注或生成带注释的报告很有用。

查找和替换文本

需要编辑或更新文档中的文本?直接替换即可:

foreach (TextFragment fragment in absorber.TextFragments)
{fragment.Text = "REDACTED";
}

您甚至可以在替换时应用新的格式:

fragment.TextState.FontSize = 12;
fragment.TextState.Font = FontRepository.FindFont("Arial");
fragment.TextState.ForegroundColor = Color.Black;

通过编程突出显示和替换文本,您可以自动执行许多文档处理任务,例如清理模板、更新过时的内容或审查私人数据。

在所有页面或特定页面中搜索

默认情况下,Aspose.PDF 会搜索PDF 中的所有页面。但有时,您可能希望将搜索范围限制在特定页面页面范围内——尤其是在处理大型文件或内容可预测的情况下。

Aspose.PDF 使这两项操作变得简单。

在所有页面上搜索(默认)

如果您没有指定页面,吸收器会自动搜索每一页。

TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");
pdfDocument.Pages.Accept(absorber); // Searches all pages

在特定页面上搜索

您还可以通过直接定位来搜索单个页面:

TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");// Search only on page 2
pdfDocument.Pages[2].Accept(absorber);

在一定范围内的页面搜索

要搜索自定义范围(例如第 2 页至第 4 页),只需循环遍历该范围:

TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");// Loop through selected pages
for (int i = 2; i <= 4; i++)
{pdfDocument.Pages[i].Accept(absorber);
}

这种方法使您能够完全控制性能和精度,对于扫描或分段的文档尤其有用。

高级用例:搜索和编辑敏感信息

在法律、人力资源或财务文档中,通常会在共享之前隐藏敏感内容(例如姓名、ID 或账号)。Aspose.PDF for .NET 通过将搜索编辑功能相结合,使这变得简单。

您可以搜索术语,然后使用应用黑色覆盖RedactionAnnotation。

// Load PDF and search for text
Document pdfDocument = new Document("sample.pdf");// Search for the name "John Doe"
TextFragmentAbsorber absorber = new TextFragmentAbsorber("John Doe");
pdfDocument.Pages.Accept(absorber);// Loop through found fragments and redact
foreach (TextFragment fragment in absorber.TextFragments)
{// Get position and dimensionsAspose.Pdf.Rectangle rect = new Aspose.Pdf.Rectangle(fragment.Position.XIndent,fragment.Position.YIndent,fragment.Position.XIndent + fragment.Rectangle.Width,fragment.Position.YIndent + fragment.Rectangle.Height);// Create a redaction annotationRedactionAnnotation redaction = new RedactionAnnotation(fragment.Page, rect){FillColor = Color.Black,Color = Color.Black};// Add and apply redactionfragment.Page.Annotations.Add(redaction);redaction.Redact();
}
// Save the modified document
pdfDocument.Save("SearchAndRedact.pdf");

会发生什么

  • 找到目标文本(“John Doe”)并将其用黑框覆盖。
  • 这不仅仅是视觉上的——它会从 PDF 层中删除内容,使其无法从文件中删除。

结论

在 PDF 文件中搜索文本是许多基于文档的应用程序的一项重要功能——无论您是提取数据、审核内容还是准备文件进行编辑。使用Aspose.PDF for .NET,您可以轻松执行关键字搜索、使用正则表达式、突出显示结果,甚至精确控制地编辑敏感信息。Aspose.PDF 提供开发人员友好的 API,可简化复杂的 PDF 操作——节省您的时间,同时实现强大的自动化功能。

http://www.dtcms.com/wzjs/605008.html

相关文章:

  • 军事最新消息广州优化网站
  • 淘宝发布网站建设种子在线资源搜索神器
  • 微信公众号 链接微网站钢筋网片理论重量表规格表
  • 益阳网站制作公司地址构建一个网站的步骤
  • 雷州手机网站建设电子商务网站软件建设核心
  • 做网站怎么插音乐循环广东的网站备案
  • 辽宁网站建设企业定制公司永久免费linux服务器下载
  • 沧州国外网站建设织梦如何做汽车贸易网站
  • 宁津 做网站建自己的网站做外贸
  • 开发网站培训班厦门网站建设推广
  • 计算机学习网站内蒙古自治区建设厅网站首页
  • asp 网站开发教程龙岩设计师
  • 汝阳网站建设荷兰网站域名
  • 网站繁体js公司管理系统网站
  • 滁州网站建设联系方式最近几天新闻大事
  • 做国外网站的站长微软哪个软件做网站
  • 重庆seo整站优化系统网页设计尺寸标注
  • 义乌公司网站wordpress 文章文件夹
  • 做传奇网站怎么弄怎么让网站被搜索到
  • 株洲做网站优化培训网站建设
  • 广州建设高端网站网站做友情链接的用途
  • 网站超链接的优化公司企业做网站怎么做
  • 重庆网站建设子沃科技熊掌号汽车网站策划书
  • 做外贸网站如果是东西杂会不会不好推广大连网站设计公司排名
  • 梦扬科技 合肥网站建设app开发费用报价表
  • 延庆县专业网站制作网站建设房地产网
  • 做资源的教育类网站或公司mvc5 网站开发之美 pdf
  • 做网站一个月能赚多少钱电子商务网站建设基本组成
  • 网站域名备案服务广州网站开发公司有哪些
  • 西安网站模板建站柳州 网站建设