1. Produkty
  2.   PDF
  3.   .NET
  4.   PdfPig
 
  

Darmowe API C# .NET do wyodrębniania i analizy tekstu PDF

Wiodąca otwartoźródłowa biblioteka .NET do łatwego wyodrębniania tekstu, obrazów, metadanych i informacji o strukturze PDF z plików PDF. Dodawaj nowe strony, tabele, tekst i kształty do plików PDF.

Czym jest biblioteka PdfPig?

PdfPig jest otwartoźródłową biblioteką .NET przeznaczoną do odczytywania, parsowania i wyodrębniania treści z plików PDF w C#. Została opracowana jako port Apache PDFBox dla ekosystemu .NET i jest szeroko stosowana do ekstrakcji tekstu z PDF, analizy dokumentów oraz niskopoziomowego przetwarzania PDF. Obsługuje .NET Standard oraz wiele wersji .NET, co czyni ją bardzo elastyczną dla nowoczesnych środowisk programistycznych. Biblioteka jest bardzo przydatna do indeksowania dokumentów, wyszukiwarek, wstępnego przetwarzania dokumentów AI/ML, post‑procesingu OCR, automatyzacji faktur, narzędzi dostępności PDF oraz systemów wyodrębniania danych.

Pliki PDF są wszędzie — umowy, raporty, faktury, e‑książki, wyciągi bankowe, prace naukowe i formularze. Wyodrębnianie ustrukturyzowanych informacji z PDF‑ów jest często trudne, ponieważ PDF jest przede wszystkim formatem prezentacyjnym, a nie semantycznym formatem dokumentu. PdfPig upraszcza ten problem, dając programistom dostęp do surowego tekstu i słów, pozycji znaków i ich prostokątów ograniczających, czcionek i informacji o stylach, obrazów oraz metadanych i szczegółów układu dokumentu. W przeciwieństwie do wielu bibliotek PDF, które koncentrują się głównie na generowaniu PDF‑ów, PdfPig jest wyspecjalizowany w odczytywaniu istniejących dokumentów PDF. Dzięki temu jest doskonałym wyborem dla programistów budujących silniki wyszukiwania, potoki OCR, parsery faktur, analizatory dokumentów, narzędzia zgodności lub systemy ekstrakcji treści.

Previous Next

Rozpoczęcie pracy z PdfPig

Biblioteka PdfPig jest dostępna jako pakiet NuGet. Dlatego zdecydowanie zaleca się użycie NuGet do zainstalowania PdfPig w swoim projekcie. Proszę użyć poniższego polecenia, aby pomyślnie zainstalować.

Zainstaluj PdfPig za pomocą Menedżera pakietów NuGet

// Package Manager
Install-Package PdfPig

// .NET CLI

dotnet add package PdfPig

Możesz również zainstalować go ręcznie; pobierz najnowsze pliki wydania bezpośrednio z repozytorium GitHub.

Wyodrębnianie tekstu z dokumentów PDF za pomocą .NET

Jednym z najczęstszych zastosowań PdfPig jest wyodrębnianie zwykłego tekstu z dokumentów PDF. Programiści mogą otworzyć plik PDF i czytać tekst strona po stronie lub wyodrębnić całą zawartość. Jest to szczególnie przydatne do indeksowania wyszukiwania, skanowania słów kluczowych i analizy treści. Oto prosty przykład, który pokazuje, jak programiści mogą wyodrębniać tekst z dokumentów PDF w aplikacjach C# .NET. Najpierw otwiera plik PDF i iteruje przez wszystkie strony, po czym odczytuje wyodrębnioną treść tekstową.

Jak wyodrębnić tekst z dokumentów PDF za pomocą 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);
    }
}

Formularze interaktywne i wyodrębnianie osadzonych plików

Biblioteka open source PdfPig natywnie obsługuje wyodrębnianie interaktywnych formularzy Acrobat (AcroForms) oraz odczytywanie plików ukrytych w załącznikach PDF. Umożliwia programistom globalne sprawdzanie definicji formularzy, iterowanie przez typowane interaktywne elementy formularzy (takie jak pola wyboru, pola tekstowe czy przyciski), oraz dostęp do surowych danych bajtowych plików osadzonych w adnotacjach dokumentu, co zapewnia płynną interoperacyjność systemów.

Jak wyodrębnić interaktywne dane formularza za pomocą biblioteki 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
                }
            }
        }
    }
}

Bezproblemowe łączenie wielu plików PDF za pomocą C#

Poza ekstrakcją treści, PdfPig oferuje proste narzędzia do zarządzania dokumentami. Korzystając z klasy PdfMerger, programiści mogą konsolidować oddzielne, niezależne struktury PDF w jedną, zjednoczoną tablicę bajtów pliku wyjściowego. Zapewnia to skuteczny sposób łączenia programowych raportów, faktur lub dokumentów wyciągów klienta bez dodawania ciężkich, zewnętrznych zależności do Twojego potoku .NET. Poniższy przykład pokazuje, jak użytkownicy mogą łączyć wiele dokumentów PDF w aplikacjach .NET.

Jak scalić wiele plików PDF w aplikacjach 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);
    }
}

Odczyt metadanych PDF, formularzy i adnotacji

Poza ekstrakcją tekstu, otwarto‑źródłowa biblioteka PdfPig zawiera funkcje udostępniające metadane dokumentu (tytuł, autor, producent), interaktywne pola formularzy, hiperłącza i zakładki. Jest to nieocenione dla systemów klasyfikacji dokumentów, automatycznego przetwarzania formularzy i indeksowania treści, gdzie potrzebne są zarówno zawartość, jak i kontekst.

 Polski