对PDF文档中的内容进行查找时,可针对文档全篇内容获取查找结果,也可在PDF指定页面中的特定范围内(矩形框区域)进行查找,对获取的查找结果可执行文本高亮或替换等操作,本文将对此作相关介绍(附VB.NET代码,有需要可参考)。
关于工具使用
工具:需下载Spire.PDF for .NET Pack hotfix 6.12.20版本(注:hotfixt版本无需安装,若下载的是Pack版本则需要安装至本地路径,可在安装后,查看演示程序及API)。
引用:下载并解压到本地路径,将Bin文件夹下的Spire.Pdf.dll文件添加引用至VS程序。
using Spire.Pdf; using Spire.Pdf.General.Find; using Spire.Pdf.Graphics; using System.Drawing; namespace FindAndHighlightText2 { class Program { static void Main(string[] args) { //加载PDF测试文档 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("咖啡豆.pdf", FileFormat.PDF); //指定需要查找的页面区域范围 RectangleF pagerec = new RectangleF(0, 0, 500, 700); //在第一页的指定区域查找指定文本 PdfTextFindCollection findCollection1 = pdf.Pages[0].FindText(pagerec, "咖啡豆", TextFindParameter.WholeWord); PdfTextFindCollection findCollection2 = pdf.Pages[0].FindText(pagerec, "洪都拉斯", TextFindParameter.WholeWord); //替换查找结果 PdfBrush brush = new PdfSolidBrush(Color.Red); PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 12f, FontStyle.Regular)); RectangleF textrec; foreach (PdfTextFind find1 in findCollection1.Finds) { textrec = find1.Bounds; pdf.Pages[0].Canvas.DrawRectangle(PdfBrushes.White, textrec); pdf.Pages[0].Canvas.DrawString("NewText", font, brush, textrec); } //高亮查找结果 foreach (PdfTextFind find2 in findCollection2.Finds) { find2.ApplyHighLight(Color.Yellow); } //保存文档 pdf.SaveToFile("result.pdf", FileFormat.PDF); System.Diagnostics.Process.Start("result.pdf"); } } }
Imports Spire.Pdf Imports Spire.Pdf.General.Find Imports Spire.Pdf.Graphics Imports System.Drawing Namespace FindAndHighlightText2 Class Program Private Shared Sub Main(args As String()) '加载PDF测试文档 Dim pdf As New PdfDocument() pdf.LoadFromFile("咖啡豆.pdf", FileFormat.PDF) '指定需要查找的页面区域范围 Dim pagerec As New RectangleF(0, 0, 500, 700) '在第一页的指定区域查找指定文本 Dim findCollection1 As PdfTextFindCollection = pdf.Pages(0).FindText(pagerec, "咖啡豆", TextFindParameter.WholeWord) Dim findCollection2 As PdfTextFindCollection = pdf.Pages(0).FindText(pagerec, "洪都拉斯", TextFindParameter.WholeWord) '替换查找结果 Dim brush As PdfBrush = New PdfSolidBrush(Color.Red) Dim font As New PdfTrueTypeFont(New Font("Arial", 12F, FontStyle.Regular)) Dim textrec As RectangleF For Each find1 As PdfTextFind In findCollection1.Finds textrec = find1.Bounds pdf.Pages(0).Canvas.DrawRectangle(PdfBrushes.White, textrec) pdf.Pages(0).Canvas.DrawString("NewText", font, brush, textrec) Next '高亮查找结果 For Each find2 As PdfTextFind In findCollection2.Finds find2.ApplyHighLight(Color.Yellow) Next '保存文档 pdf.SaveToFile("result.pdf", FileFormat.PDF) System.Diagnostics.Process.Start("result.pdf") End Sub End Class End Namespace
相关推荐
C#提供了Regex类,可以用于解析和匹配正则表达式模式,实现复杂文本查找和替换。 5. **多线程**:为了提升用户体验,文本编辑器可能使用多线程来实现后台加载大文件或执行耗时操作,避免阻塞主线程导致界面无响应。...
- **查找和替换**:使用`RichTextBox.Find()`方法进行文本查找,`RichTextBox.Replace()`方法进行替换操作。 - **事件处理**:例如,`TextChanged`事件在文本改变时触发,可以在此事件中执行相应的逻辑。 4. **...
在这个场景中,C#被用来开发一个在线文本编辑器,提供丰富的功能,包括处理文字、视频和图片,并允许用户自由设定样式和导入格式。 在线文本编辑器的核心功能通常包括: 1. **文本输入与编辑**:用户可以在编辑器...
书中详细讲述了如何构建高度模块化的应用程序、提供灵活可扩展的用户界面、进行有效的语言国际化及本地化处理、进行高效的文本表示和维护、代码查找和替换功能、构建可重用的控件以及实现语法高亮显示和分析的自动化...
实例086 在richtextbox控件中替换文本文字 实例087 利用richtextbox控件实现文字定位与标示 实例088 将数据表中的字段添加到combobox控件中 实例089 对listbox控件中的数据进行排序 实例090 listbox控件拒绝添加重复...
3. **文本处理**: 源代码可能包含了大量处理文本的操作,如读取、写入、查找、替换、剪切、复制和粘贴。这涉及到字符串操作、正则表达式以及对Unicode字符的支持。 4. **事件处理**: C#中的事件驱动编程是编辑器...
这个项目可能旨在帮助初学者理解如何构建基本的文本编辑器功能,如打开、保存、复制、粘贴、查找和替换等。 【描述】提到这是一个"电子书",这意味着它可能不仅包含源代码,还可能包括相关的教程、解释和示例,以...
5. **查找和替换**:提供了内置的搜索和替换功能,方便用户快速定位和修改文本。 6. **滚动条**:根据内容自动调整滚动条,确保所有内容都能查看到。 7. **多行文本输入**:与`TextBox`不同,`RichtextBox`支持多行...
另外,Notepad++支持Regular Expression进行查找和替换,这对于处理大量文本数据或查找特定模式的代码尤为有用。 Notepad++还具有书签功能,通过书签可以快速定位到代码的特定位置,提高代码导航的效率。高亮度显示...
- **查找与替换**:高效地查找和替换文本。 - **编码与换行符**:处理不同编码格式的文件。 - **大纲显示**:提供清晰的代码结构视图。 - **代码生成与重构**:自动生成常用代码结构,并提供重构选项以提高代码...
- 搜索和替换:在XML文档中查找和替换特定内容。 - XML格式化:自动整理XML文档的格式,使其符合标准规范。 - 插件扩展:许多XML编辑器支持插件,可以增加更多功能,如XPath查询、XSLT转换等。 6. **XML编辑器...
在实际开发过程中,我们还需要考虑其他功能,如自动完成、代码折叠、查找替换等。这些功能的实现同样需要与RichEdit50W交互,发送适当的控制消息,或者使用额外的库来辅助处理。 在提供的"An-Idea-How-to-Use-Rich...
《Peter程序员广泛的文本编辑器》是一款专为编程人员设计的强大文本...通过安装提供的"Peter-Programmers-Extensive-Text-Editor.pdf"文档和"下载链接.txt"中的资源,用户可以深入了解并开始使用这款强大的文本编辑器。
在本文中,我们将深入探讨如何在C# WinForms应用程序中集成并使用`ICSharpCode.TextEditor`,这是一个强大的文本编辑控件,能够提供语法高亮显示,极大地提升了代码编辑体验。`ICSharpCode.TextEditor`是.NET框架下...
在"Enhanced-String-Handling.pdf"文档中,可能详细介绍了这些概念,并提供了示例代码和最佳实践。如果想要深入学习,可以下载名为"LogOn.aspx?rp=%2FKB%2Fstring%2FEnhancedStringHandling%2FEnahcedStringEvaluate...