Поиск регулярного выражения в PDF-файле

В этом руководстве объясняется, как использовать Aspose.PDF для .NET для поиска и получения текста, соответствующего регулярному выражению в файле PDF. Приведенный исходный код C# демонстрирует процесс шаг за шагом.

Предварительные условия

Прежде чем продолжить обучение, убедитесь, что у вас есть следующее:

  • Базовые знания языка программирования C#.
  • Установлена библиотека Aspose.PDF для .NET. Вы можете получить его с веб-сайта Aspose или использовать NuGet для установки в свой проект.

Шаг 1. Настройте проект

Начните с создания нового проекта C# в предпочитаемой вами интегрированной среде разработки (IDE) и добавьте ссылку на библиотеку Aspose.PDF для .NET.

Шаг 2. Импортируйте необходимые пространства имен.

Добавьте следующие директивы using в начало файла C#, чтобы импортировать необходимые пространства имен:

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

Шаг 3. Загрузите PDF-документ.

Укажите путь к каталогу вашего PDF-документа и загрузите документ, используяDocument сорт:

string dataDir = "YOUR DOCUMENT DIRECTORY";
Document pdfDocument = new Document(dataDir + "SearchRegularExpressionAll.pdf");

Обязательно замените"YOUR DOCUMENT DIRECTORY" с фактическим путем к каталогу вашего документа.

Шаг 4. Поиск с помощью регулярного выражения

СоздатьTextFragmentAbsorber объект и установите шаблон регулярного выражения, чтобы найти все фразы, соответствующие шаблону:

TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Как и 1999-2000 гг.

Заменять"\\d{4}-\\d{4}" с желаемым шаблоном регулярного выражения.

Шаг 5. Установите параметры текстового поиска

СоздатьTextSearchOptions объект и установите его вTextSearchOptions собственностьTextFragmentAbsorber объект, чтобы включить использование регулярных выражений:

TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

Шаг 6. Поиск на всех страницах.

Примите поглотитель для всех страниц документа:

pdfDocument.Pages.Accept(textFragmentAbsorber);

Шаг 7. Получите извлеченные фрагменты текста.

Получите извлеченные фрагменты текста, используяTextFragments собственностьTextFragmentAbsorber объект:

TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

Шаг 8: Прокрутите фрагменты текста

Прокрутите полученные фрагменты текста и получите доступ к их свойствам:

foreach (TextFragment textFragment in textFragmentCollection)
{
	Console.WriteLine("Text: {0} ", textFragment.Text);
	Console.WriteLine("Position: {0} ", textFragment.Position);
	Console.WriteLine("XIndent: {0} ", textFragment.Position.XIndent);
	Console.WriteLine("YIndent: {0} ", textFragment.Position.YIndent);
	Console.WriteLine("Font - Name: {0}", textFragment.TextState.Font.FontName);
	Console.WriteLine("Font - IsAccessible: {0} ", textFragment.TextState.Font.IsAccessible);
	Console.WriteLine("Font - IsEmbedded: {0} ", textFragment.TextState.Font.IsEmbedded);
	Console.WriteLine("Font - IsSubset: {0} ", textFragment.TextState.Font.IsSubset);
	Console.WriteLine("Font Size: {0} ", textFragment.TextState.FontSize);
	Console.WriteLine("Foreground Color: {0} ", textFragment.TextState.ForegroundColor);
}

Вы можете изменить код внутри цикла, чтобы выполнять дальнейшие действия над каждым фрагментом текста.

Пример исходного кода для регулярного выражения поиска с использованием Aspose.PDF для .NET

// Путь к каталогу документов.
string dataDir = "YOUR DOCUMENT DIRECTORY";
// Открыть документ
Document pdfDocument = new Document(dataDir + "SearchRegularExpressionAll.pdf");
// Создайте объект TextAbsorber, чтобы найти все фразы, соответствующие регулярному выражению.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Как и 1999-2000 гг.
// Установите параметр текстового поиска, чтобы указать использование регулярных выражений
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;
// Примите поглотитель для всех страниц
pdfDocument.Pages.Accept(textFragmentAbsorber);
// Получить извлеченные фрагменты текста
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Перебирать фрагменты
foreach (TextFragment textFragment in textFragmentCollection)
{
	Console.WriteLine("Text : {0} ", textFragment.Text);
	Console.WriteLine("Position : {0} ", textFragment.Position);
	Console.WriteLine("XIndent : {0} ", textFragment.Position.XIndent);
	Console.WriteLine("YIndent : {0} ", textFragment.Position.YIndent);
	Console.WriteLine("Font - Name : {0}", textFragment.TextState.Font.FontName);
	Console.WriteLine("Font - IsAccessible : {0} ", textFragment.TextState.Font.IsAccessible);
	Console.WriteLine("Font - IsEmbedded : {0} ", textFragment.TextState.Font.IsEmbedded);
	Console.WriteLine("Font - IsSubset : {0} ", textFragment.TextState.Font.IsSubset);
	Console.WriteLine("Font Size : {0} ", textFragment.TextState.FontSize);
	Console.WriteLine("Foreground Color : {0} ", textFragment.TextState.ForegroundColor);
}

Заключение

Поздравляем! Вы успешно научились искать и получать текст, соответствующий регулярному выражению, в PDF-документе с помощью Aspose.PDF для .NET. В этом руководстве представлено пошаговое руководство: от загрузки документа до доступа к извлеченным фрагментам текста. Теперь вы можете включить этот код в свои собственные проекты C# для выполнения расширенного поиска текста в файлах PDF.

Часто задаваемые вопросы

Вопрос: Какова цель руководства «Поиск по регулярному выражению в PDF-файле»?

О: Учебное пособие «Поиск по регулярному выражению в файле PDF» призвано продемонстрировать, как использовать библиотеку Aspose.PDF для .NET для поиска и извлечения текста, соответствующего заданному шаблону регулярного выражения, в файле PDF. В руководстве представлены подробные инструкции и пример кода C# для демонстрации процесса.

Вопрос: Как это руководство поможет в поиске текста с использованием регулярных выражений в документе PDF?

О: В этом руководстве представлен пошаговый подход к использованию библиотеки Aspose.PDF для выполнения текстового поиска в PDF-документе на основе шаблона регулярного выражения. В нем подробно описано, как настроить проект, загрузить PDF-документ, определить шаблон регулярного выражения и получить соответствующие фрагменты текста.

Вопрос: Каковы необходимые условия для изучения этого руководства?

О: Прежде чем приступить к изучению этого руководства, вы должны иметь базовое представление о языке программирования C#. Кроме того, вам необходимо установить библиотеку Aspose.PDF for .NET. Вы можете получить его с веб-сайта Aspose или использовать NuGet для интеграции в свой проект.

Вопрос: Как мне настроить свой проект для использования этого руководства?

О: Для начала создайте новый проект C# в предпочитаемой вами интегрированной среде разработки (IDE) и добавьте ссылку на библиотеку Aspose.PDF для .NET. Это позволит вам использовать возможности библиотеки в вашем проекте.

Вопрос: Могу ли я использовать регулярные выражения для поиска текста в PDF-документе?

О: Да, в этом руководстве показано, как использовать регулярные выражения для поиска и извлечения текста из документа PDF. Он предполагает использованиеTextFragmentAbsorber class и указав шаблон регулярного выражения для поиска фраз, соответствующих предоставленному шаблону.

Вопрос: Как определить шаблон регулярного выражения для текстового поиска?

О: Чтобы определить шаблон регулярного выражения для текстового поиска, создайтеTextFragmentAbsorber объект и задайте его шаблон с помощьюText параметр. Заменить шаблон по умолчанию"\\d{4}-\\d{4}" в коде руководства с нужным шаблоном регулярного выражения.

Вопрос: Как включить использование регулярных выражений для текстового поиска?

О: Использование регулярных выражений включается путем созданияTextSearchOptions объект и установить его значениеtrue . Назначьте этот объектTextSearchOptions собственностьTextFragmentAbsorber пример. Это гарантирует, что шаблон регулярного выражения будет применяться во время текстового поиска.

Вопрос: Могу ли я получить фрагменты текста, соответствующие шаблону регулярного выражения?

А: Абсолютно. После применения поиска по регулярному выражению к PDF-документу вы можете получить извлеченные фрагменты текста с помощьюTextFragments собственностьTextFragmentAbsorber объект. Эти текстовые фрагменты содержат текстовые сегменты, соответствующие указанному шаблону регулярного выражения.

Вопрос: К чему я могу получить доступ из полученных фрагментов текста?

О: Из полученных фрагментов текста вы можете получить доступ к различным свойствам, таким как совпадающее текстовое содержимое, положение (координаты X и Y), информация о шрифте (имя, размер, цвет) и многое другое. Пример кода в цикле руководства демонстрирует, как получить доступ к этим свойствам и отобразить их.

Вопрос: Как настроить действия над извлеченными фрагментами текста?

О: Получив извлеченные фрагменты текста, вы можете настроить код внутри цикла для выполнения дополнительных действий над каждым фрагментом текста. Это может включать сохранение извлеченного текста, анализ шаблонов или внесение изменений форматирования в соответствии с вашими требованиями.