Искать и получать весь текст
В этом руководстве объясняется, как использовать 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 + "SearchAndGetTextFromAll.pdf");
Обязательно замените"YOUR DOCUMENT DIRECTORY"
с фактическим путем к каталогу вашего документа.
Шаг 4. Поиск и извлечение текста
СоздатьTextFragmentAbsorber
объект, чтобы найти все экземпляры входной поисковой фразы:
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");
Заменять"text"
с фактическим текстом, который вы хотите найти.
Шаг 5. Поиск на всех страницах.
Примите поглотитель для всех страниц документа:
pdfDocument.Pages.Accept(textFragmentAbsorber);
Шаг 6: получите извлеченные фрагменты текста
Получите извлеченные фрагменты текста, используяTextFragments
собственностьTextFragmentAbsorber
объект:
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
Шаг 7: Прокрутите фрагменты текста
Прокрутите полученные фрагменты текста и получите доступ к их свойствам:
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 + "SearchAndGetTextFromAll.pdf");
// Создайте объект TextAbsorber, чтобы найти все экземпляры входной поисковой фразы.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");
// Примите поглотитель для всех страниц
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.
Часто задаваемые вопросы
Вопрос: Какова цель руководства «Найти и получить весь текст»?
О: Учебное пособие «Поиск и получение всего текста» демонстрирует, как использовать библиотеку Aspose.PDF для .NET для поиска и извлечения текста со всех страниц PDF-документа. В руководстве представлены пошаговые инструкции, а также пример кода C# для выполнения поиска и извлечения текста.
Вопрос: Как это руководство поможет извлечь текст из PDF-документов?
О: Это руководство проведет вас через процесс извлечения текста со всех страниц PDF-документа. Он использует библиотеку Aspose.PDF для поиска определенных текстовых фраз и получения связанной информации, такой как положение, свойства шрифта и цвета.
Вопрос: Каковы необходимые условия для изучения этого руководства?
О: Прежде чем приступить к изучению этого руководства, вы должны иметь базовое представление о языке программирования C#. Кроме того, вам необходимо установить библиотеку Aspose.PDF for .NET. Вы можете получить его с веб-сайта Aspose или использовать NuGet для интеграции в свой проект.
Вопрос: Как мне настроить свой проект для использования этого руководства?
О: Для начала создайте новый проект C# в предпочитаемой вами интегрированной среде разработки (IDE) и добавьте ссылку на библиотеку Aspose.PDF для .NET. Это позволит вам получить доступ к функциям библиотеки в вашем проекте.
Вопрос: Как выполнить поиск определенного текста в PDF-документе?
О: Вы можете использоватьTextFragmentAbsorber
для поиска экземпляров определенной поисковой фразы в PDF-документе. Создав экземпляр этого класса и указав целевой текст, вы можете захватить все вхождения этого текста.
Вопрос: Могу ли я искать текст на всех страницах PDF-документа?
О: Да, в руководстве показано, как искать текст на всех страницах PDF-документа.pdfDocument.Pages.Accept(textFragmentAbsorber)
Метод используется для принятия поглотителя для всех страниц, что позволяет искать нужный текст на каждой странице.
Вопрос: Как получить доступ к извлеченным фрагментам текста?
О: После поиска текста вы можете получить доступ к извлеченным фрагментам текста с помощьюTextFragments
собственностьTextFragmentAbsorber
объект. Это свойство обеспечивает доступ к коллекцииTextFragment
объекты, содержащие извлеченный текст и связанную с ним информацию.
Вопрос: Какую информацию я могу получить из извлеченных фрагментов текста?
О: Из извлеченных фрагментов текста вы можете получить различные детали, такие как фактическое текстовое содержимое, положение (координаты X и Y), информацию о шрифте (имя, размер, цвет и т. д.) и многое другое. Пример кода руководства демонстрирует, как получить доступ к этим сведениям и распечатать их.
Вопрос: Могу ли я выполнять дальнейшие действия над извлеченными фрагментами текста?
А: Абсолютно. Получив извлеченные фрагменты текста, вы можете изменить код внутри цикла, чтобы выполнять специальные действия над каждым фрагментом. Это может включать сохранение извлеченного текста, анализ текстовых шаблонов или применение изменений форматирования.