Безплатен C# .NET API за извличане и анализ на текст от 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 конвейери, парсери на фактури, анализатори на документи, инструменти за съответствие или системи за извличане на съдържание.

Previous Next

Започване с PdfPig

Библиотеката PdfPig е достъпна като NuGet пакет. Затова се препоръчва силно да използвате NuGet за инсталиране на PdfPig във вашия проект. Моля, използвайте следната команда за успешно инсталиране.

Инсталиране на PdfPig чрез NuGet Package Manager

// 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 включва функции, които разкриват метаданни на документа (заглавие, автор, производител), интерактивни полета за формуляри, хипервръзки и отметки. Това е безценно за системи за класификация на документи, автоматизирана обработка на формуляри и индексиране на съдържание, където се нуждаете както от съдържание, така и от контекст.

 Български