3

Как извлечь текст из PDF с помощью C#

Извлечение текста из PDF-файлов — это распространенная задача в приложениях для обработки документов. Независимо от того, нужно ли вам получить конкретный контент, проанализировать данные или автоматизировать извлечение текста, надежная библиотека может упростить задачу. В этом посте мы рассмотрим, как использовать Free Spire.PDF for .NET, мощную библиотеку C#, для извлечения текста из PDF в различных сценариях, включая:

  • Извлечение текста с конкретной страницы

  • Извлечение текста из прямоугольной области

  • Извлечение таблиц из PDF

Бесплатная библиотека C# для извлечения текста из PDF

Free Spire.PDF for .NET — это легкая, но мощная библиотека, которая позволяет разработчикам работать с PDF-файлами в приложениях .NET. Она поддерживает различные операции с PDF, включая извлечение текста, без необходимости использования Adobe Acrobat.

Чтобы начать, установите библиотеку с помощью диспетчера пакетов NuGet в Visual Studio:

Install-Package FreeSpire.PDF

Либо найдите "FreeSpire.PDF" в диспетчере пакетов NuGet и установите ее.

Извлечение текста с конкретной страницы

Если вы хотите извлечь весь текст с конкретной страницы в PDF, Free Spire.PDF предлагает простые методы для этого. Сначала загрузите PDF-файл из заданного пути. Затем получите доступ к нужной странице и создайте объект PdfTextExtractor для управления процессом извлечения.

Используя объект PdfTextExtractOptions, вы можете настроить параметры извлечения. Установите IsExtractAllText в true, чтобы убедиться, что весь текст на странице будет захвачен. Наконец, вызовите метод ExtractText() у PdfTextExtractor, чтобы получить текст с указанной страницы.

Пример кода:

using System;

using System.IO;

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\input.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);


// Записываем в текстовый файл

File.WriteAllText("Extracted.txt", text);

}

}

}

Этот код извлекает весь текст с первой страницы PDF и сохраняет его в текстовом файле.

Извлечение текста из прямоугольной области

Иногда может понадобиться извлечь текст из определенной прямоугольной области страницы. Начните с загрузки PDF-файла и нацеливания на нужную страницу. Затем создайте PdfTextExtractor и определите область извлечения, используя объект RectangleF, указав его координаты и размеры. Наконец, вызовите метод ExtractText() у PdfTextExtractor, чтобы получить текст в определенной области.

Пример кода:

using Spire.Pdf;

using Spire.Pdf.Texts;

using System.IO;

using System.Drawing;


namespace ExtractTextFromRectangleArea

{

class Program

{

static void Main(string[] args)

{

// Создаем объект PdfDocument

PdfDocument doc = new PdfDocument();


// Загружаем PDF-файл

doc.LoadFromFile(@"C:\Users\Administrator\Desktop\input.pdf");


// Получаем конкретную страницу

PdfPageBase page = doc.Pages[1];


// Создаем объект PdfTextExtractor

PdfTextExtractor textExtractor = new PdfTextExtractor(page);


// Создаем объект PdfTextExtractOptions

PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();


// Устанавливаем область прямоугольника

extractOptions.ExtractArea = new RectangleF(0, 0, 800, 200);


// Извлекаем текст из прямоугольника

string text = textExtractor.ExtractText(extractOptions);


// Записываем в текстовый файл

File.WriteAllText("Extracted.txt", text);

}

}

}

Этот код извлекает текст только из указанного прямоугольного региона (координаты (0, 0) до (800, 200)) на второй странице.

Извлечение таблиц с конкретной страницы

Извлечение таблиц из PDF может быть сложной задачей, но Free Spire.PDF упрощает процесс с помощью класса PdfTableExtractor. Сначала инициализируйте PdfTableExtractor и используйте метод ExtractTable(), чтобы получить таблицы с первой страницы документа.

Извлеченные таблицы хранятся в массиве, который вы можете перебрать. Для каждой таблицы пройдите по ее строкам и столбцам, чтобы собрать текст из каждой ячейки. Наконец, добавьте объединенный текст в StringBuilder и сохраните его в "Table.txt".

Пример кода:

using System.IO;

using System.Text;

using Spire.Pdf;

using Spire.Pdf.Utilities;

namespace ExtractPdfTable

{

class Program

{

static void Main(string[] args)

{

// Создаем объект PdfDocument

PdfDocument doc = new PdfDocument();

// Загружаем образец PDF-файла

doc.LoadFromFile(@"C:\Users\Administrator\Desktop\input.pdf");

// Создаем объект StringBuilder

StringBuilder builder = new StringBuilder();

// Инициализируем экземпляр класса PdfTableExtractor

PdfTableExtractor extractor = new PdfTableExtractor(doc);

// Объявляем массив PdfTable

PdfTable[] tableList = null;

// Извлекаем таблицы с конкретной страницы

tableList = extractor.ExtractTable(0);

// Проверяем, не является ли список таблиц нулевым

if (tableList != null && tableList.Length > 0)

{

// Перебираем таблицы в списке

foreach (PdfTable table in tableList)

{

// Получаем количество строк и столбцов определенной таблицы

int row = table.GetRowCount();

int column = table.GetColumnCount();

// Перебираем строки и столбцы

for (int i = 0; i < row; i++)

{

for (int j = 0; j < column; j++)

{

// Получаем текст из конкретной ячейки

string text = table.GetText(i, j);

// Добавляем текст в StringBuilder

builder.Append(text + " ");

}

builder.Append("\r\n");

}

}

}


// Записываем в .txt файл

File.WriteAllText("Table.txt", builder.ToString());

}

}

}

Этот код извлекает все таблицы с первой страницы и сохраняет их в структурированном текстовом формате.

Заключение

Free Spire.PDF for .NET — отличный выбор для извлечения текста и таблиц из PDF в C#. Независимо от того, нужно ли вам извлечь целые страницы, конкретные области или структурированные таблицы, эта библиотека предлагает эффективные и простые методы.

Следуя приведенным выше примерам, вы можете легко интегрировать извлечение текста из PDF в свои приложения .NET.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества