Безкоштовний API C# .NET для вилучення та аналізу тексту PDF
Ведуча бібліотека .NET з відкритим кодом для легкого вилучення тексту, зображень, метаданих та інформації про структуру 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‑документів за допомогою C# API?
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 включає функції, які розкривають метадані документа (заголовок, автор, виробник), інтерактивні поля форми, гіперпосилання та закладки. Це безцінно для систем класифікації документів, автоматизованої обробки форм і індексації вмісту, де потрібні і сам вміст, і контекст.