Бесплатный API C# .NET для извлечения и анализа текста PDF
Ведущая библиотека с открытым исходным кодом .NET для лёгкого извлечения текста, изображений, метаданных и информации о структуре PDF из PDF‑файлов. Добавляйте новые страницы, таблицы, текст и фигуры в PDF.
Что такое библиотека PdfPig?
PdfPig — это открытая .NET библиотека, предназначенная для чтения, разбора и извлечения содержимого из PDF‑файлов в C#. Она разработана как порт Apache PDFBox для экосистемы .NET и широко используется для извлечения текста из PDF, анализа документов и низкоуровневой обработки PDF. Библиотека поддерживает .NET Standard и несколько версий .NET, что делает её очень гибкой для современных сред разработки. Библиотека очень полезна для индексации документов, поисковых систем, предобработки документов AI/ML, постобработки OCR, автоматизации счетов, инструментов доступности PDF и систем извлечения данных.
PDF‑файлы повсюду — контракты, отчёты, счета, электронные книги, банковские выписки, научные статьи и формы. Извлечение структурированной информации из PDF часто сложно, потому что PDF в первую очередь формат представления, а не семантический документный формат. PdfPig упрощает эту задачу, предоставляя разработчикам доступ к необработанному тексту и словам, позициям символов и ограничивающим рамкам, шрифтам и информации о стиле, изображениям, метаданным и деталям макета документа. В отличие от многих библиотек PDF, которые в основном сосредоточены на генерации PDF, PdfPig специализируется на чтении существующих PDF‑документов. Это делает её отличным выбором для разработчиков, создающих поисковые системы, OCR‑конвейеры, парсеры счетов, анализаторы документов, инструменты соответствия требованиям или системы извлечения контента.
Начало работы с PdfPig
Библиотека PdfPig доступна как пакет NuGet. Поэтому настоятельно рекомендуется использовать NuGet для установки PdfPig в ваш проект. Пожалуйста, используйте следующую команду для успешной установки.
Установите PdfPig через менеджер пакетов NuGet
// Package Manager
Install-Package PdfPig
// .NET CLI
dotnet add package PdfPig
Вы также можете установить его вручную; загрузите последние файлы релиза напрямую из репозитория GitHub.
Извлечение текста из PDF‑документов с помощью .NET
Одним из самых распространённых вариантов использования PdfPig является извлечение простого текста из PDF‑документов. Разработчики программного обеспечения могут открыть PDF и читать текст постранично или извлекать всё содержимое. Это особенно полезно для индексации поиска, сканирования ключевых слов и анализа контента. Ниже приведён простой пример, демонстрирующий, как разработчики могут извлекать текст из PDF‑документов в приложениях C# .NET. Сначала он открывает PDF‑файл и перебирает все страницы, после чего читает извлечённый текстовый контент.
Как извлечь текст из PDF‑документов с помощью API C#?
using UglyToad.PdfPig;
using (var document = PdfDocument.Open("sample.pdf"))
{
foreach (var page in document.GetPages())
{
string text = page.Text;
Console.WriteLine(text);
}
}
Интерактивные формы и извлечение вложенных файлов
Библиотека с открытым исходным кодом PdfPig изначально поддерживает извлечение интерактивных форм Acrobat (AcroForms) и чтение файлов, скрытых в PDF‑вложениях. Она позволяет разработчикам глобально проверять определения форм, перебирать типизированные интерактивные элементы форм (например, флажки, текстовые поля или кнопки), а также получать доступ к исходным необработанным байтовым данным файлов, встроенных в аннотации документа, для бесшовной системной совместимости.
Как извлечь данные интерактивных форм с помощью библиотеки C# .NET?
using System;
using System.Collections.Generic;
using UglyToad.PdfPig;
using UglyToad.PdfPig.AcroForms;
class Program
{
static void ExtractInteractiveContent(string pdfPath)
{
using (PdfDocument document = PdfDocument.Open(pdfPath))
{
// Extracting Interactive Form Data
if (document.TryGetForm(out AcroForm form))
{
foreach (var field in form.Fields)
{
Console.WriteLine($"Form Field Name: {field.Information.Name} | Type: {field.Type}");
}
}
// Extracting Embedded Documents/Attachments
if (document.Advanced.TryGetEmbeddedFiles(out IReadOnlyList embeddedFiles))
{
foreach (var file in embeddedFiles)
{
Console.WriteLine($"Found Attachment: {file.Name} ({file.Bytes.Count} bytes)");
// File.WriteAllBytes(file.Name, file.Bytes.ToArray()); // Save attachment locally
}
}
}
}
}
Бесшовное объединение нескольких PDF‑файлов с помощью C#
Помимо извлечения содержимого, PdfPig предлагает простые утилиты управления документами. Используя класс PdfMerger, разработчики могут объединять отдельные независимые структуры PDF в единый массив байтов выходного файла. Это предоставляет эффективный способ конкатенировать программные отчёты, счета‑фактуры или документы с выписками клиентов без добавления громоздких внешних зависимостей в ваш .NET конвейер. Следующий пример демонстрирует, как пользователи могут комбинировать несколько PDF‑документов внутри .NET приложений.
Как объединить несколько PDF‑файлов в приложениях C# .NET?
using System.IO;
using UglyToad.PdfPig.Writer;
class Program
{
static void MergeDocuments(string firstPdf, string secondPdf, string outputPdf)
{
// Consolidate files into a single continuous byte sequence
byte[] mergedFileBytes = PdfMerger.Merge(firstPdf, secondPdf);
// Output the combined file stream directly to disk
File.WriteAllBytes(outputPdf, mergedFileBytes);
}
}
Чтение метаданных PDF, форм и аннотаций
Помимо извлечения текста, открытая библиотека PdfPig включает функции, которые раскрывают метаданные документа (заголовок, автор, производитель), интерактивные поля форм, гиперссылки и закладки. Это бесценно для систем классификации документов, автоматической обработки форм и индексации контента, где требуется как содержание, так и контекст.