Как извлечь текст из PDF с помощью C#
Извлечение текста из PDF-файлов — важнейшая задача в управлении и анализе данных. Она позволяет пользователям получать доступ к информации, содержащейся в документах, которые иначе невозможно редактировать, и манипулировать ею.
В этой статье я расскажу, как извлечь текст из PDF-документа на C# с помощью библиотеки C# PDF.
- Извлечение текста из страницы на C#
- Извлечение текста из всего PDF-документа на C#
Установите библиотеку .NET для обработки PDF-файлов
Spire.PDF for .NET — это мощная библиотека для создания, чтения и редактирования PDF-документов в приложении .NET. С помощью Spire.PDF for .NET разработчики могут легко извлекать текст с заданной страницы PDF-документа.
Библиотеку можно скачать с официального сайта или установить через NuGet:
PM> Install-Package Spire.PDF
Извлечение текста из страницы на C#
Spire.PDF предлагает класс PdfTextExtractor, отвечающий за извлечение текста из PDF-страницы. Этот фрагмент кода демонстрирует, как загрузить PDF-файл, извлечь текст с его первой страницы и сохранить этот текст в текстовый файл с помощью этой библиотеки.
using Spire.Pdf;
using Spire.Pdf.Texts;
namespace ExtractTextFromPage
{
class Program
{
static void Main(string[] args)
{
// Создайте объект PdfDocument
PdfDocument doc = new PdfDocument();
// Загрузите PDF файл
doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
// Получите определённую страницу
PdfPageBase page = doc.Pages[0];
// Создайте объект PdfTextExtractor
PdfTextExtractor textExtractor = new PdfTextExtractor(page);
// Создайте объект PdfTextExtractOptions
PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();
// Установите isExtractAllText в true
extractOptions.IsExtractAllText = true;
// Извлеките текст со страницы
string text = textExtractor.ExtractText(extractOptions);
// Запишите в txt файл
File.WriteAllText("Extracted.txt", text);
}
}
}
Извлечение текста из всего PDF-документа на C#
Теперь, когда вы знаете, как извлечь текст с указанной страницы, вы можете просмотреть все страницы PDF-документа и извлечь текст с каждой из них.
Следующий код загружает PDF-файл, извлекает текст с каждой страницы и сохраняет извлеченный текст в txt-файле.
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.IO;
namespace ExtractTextFromPDF
{
class Program
{
static void Main(string[] args)
{
// Создайте объект PdfDocument
PdfDocument doc = new PdfDocument();
// Загрузите PDF файл
doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
// Создайте StringBuilder для хранения извлечённого текста
StringBuilder allText = new StringBuilder();
// Пройдите по всем страницам
for (int i = 0; i < doc.Pages.Count; i++)
{
// Получите определённую страницу
PdfPageBase page = doc.Pages[i];
// Создайте объект PdfTextExtractor
PdfTextExtractor textExtractor = new PdfTextExtractor(page);
// Создайте объект PdfTextExtractOptions
PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();
// Установите isExtractAllText в true
extractOptions.IsExtractAllText = true;
// Извлеките текст со страницы и добавьте его в StringBuilder
string text = textExtractor.ExtractText(extractOptions);
allText.AppendLine(text);
}
// Запишите извлечённый текст в txt файл
File.WriteAllText("Extracted.txt", allText.ToString());
}
}
}
Заключение
В этой статье вы узнали, как извлечь текст с определенной страницы или из всего PDF-документа с помощью C#. Будучи продвинутой библиотекой PDF, Spire.PDF for .NET поддерживает множество других функций, таких как:
Преобразование PDF в Word на C#