IRONSOFTWAREHOME
KORZYSTANIE Z IRONPDF

Jak zbudować przeglądarkę plików PDF dla ASP.NET Core przy użyciu IronPDF

Curtis Chau
Curtis Chau
Updated: 12 lipca 2026

IronPDF upraszcza ekstrakcję danych z plików PDF w ASP.NET Core, udostępniając metody odczytu tekstu, danych formularzy i tabel z plików PDF przy użyciu prostego kodu C#, bez skomplikowanych zależności i ręcznego parsowania.

Praca z plikami PDF w aplikacjach .NET może być trudniejsza, niż się wydaje na pierwszy rzut oka. Może zaistnieć potrzeba wyodrębnienia tekstu z przesłanych faktur, pobrania danych z formularzy ankietowych lub analizy tabel do bazy danych. Wiele projektów ulega spowolnieniu, ponieważ programiści sięgają po zbyt złożone biblioteki, które wymagają rozbudowanego, niestandardowego kodu parsującego. IronPDF oferuje prostą alternatywę, umożliwiającą odczytywanie i przetwarzanie dokumentów PDF przy minimalnej konfiguracji.

Niezależnie od tego, czy masz do czynienia z prostym tekstem, interaktywnymi polami formularzy, czy ustrukturyzowanymi danymi tabelarycznymi, API IronPDF zapewnia bezpośredni dostęp do treści plików PDF bez konieczności niskopoziomowego parsowania. W tym przewodniku opisano, jak odczytywać dane z plików PDF w ASP.NET Core, obejmując wyodrębnianie tekstu, pobieranie danych z formularzy, analizowanie tabel oraz obsługę asynchronicznego przesyłania plików — wszystko za pomocą kodu C#, który można wstawić do swojego projektu.

Jak skonfigurować IronPDF w projekcie ASP.NET Core?

Rozpoczęcie pracy jest proste. Zainstaluj pakiet IronPDF NuGet z konsoli NuGet Package Manager Console lub .NET CLI, używając jednego z poniższych poleceń:

PM > Install-Package IronPdf

Po zainstalowaniu pakietu dodaj przestrzeń nazw IronPDF na początku każdego pliku obsługującego dokumenty PDF:

using IronPdf;

To wszystko, co jest potrzebne do rozpoczęcia większości projektów. IronPDF nie jest zależny od zewnętrznych procesów renderowania ani dodatkowych natywnych zależności w systemie Windows. W przypadku środowisk Linux lub Docker należy zapoznać się z dokumentacją IronPDF, aby uzyskać wskazówki dotyczące konkretnej platformy.

Bezpłatna licencja próbna pozwala przetestować pełen zestaw funkcji przed podjęciem decyzji o wdrożeniu do użytku produkcyjnego. Licencję Trial można uzyskać bezpośrednio ze strony IronPDF i zastosować ją w jednym wierszu kodu przed pierwszą operacją na pliku PDF.

Jak wyodrębnić tekst z pliku PDF?

Wyodrębnianie tekstu jest najczęstszym zadaniem związanym z odczytywaniem plików PDF. IronPDF zapewnia ExtractAllText do pobierania całego tekstu czytelnego z dokumentu i ExtractTextFromPage dla dostępu na poziomie strony. Obie metody zachowują kolejność czytania i obsługują standardowe kodowania tekstu.

// Load a PDF document from disk
var pdf = PdfDocument.FromFile("document.pdf");

// Extract all text from every page
string allText = pdf.ExtractAllText();

// Extract text from a specific page (zero-based index)
string pageOneText = pdf.ExtractTextFromPage(0);

Console.WriteLine(allText);

ExtractAllText zwraca pełną treść tekstową jako pojedynczy ciąg, zachowując podziały wierszy. ExtractTextFromPage celuje w pojedynczą stronę, używając indeksu bazowanego na zerze, co jest przydatne, gdy potrzebujesz zawartości z określonej sekcji w dokumencie wielostronicowym.

Aby uzyskać szczegółowe informacje na temat opcji wyodrębniania tekstu i obrazów, w przewodniku dotyczącym wyodrębniania tekstu z plików PDF omówiono zaawansowane scenariusze, w tym wyodrębnianie oparte na regionach.

Jak wbudować funkcję wyodrębniania tekstu w kontrolerze ASP.NET Core?

Poniższa akcja kontrolera akceptuje przesłany plik PDF za pośrednictwem IFormFile, odczytuje go do MemoryStream, i zwraca wyodrębniony tekst jako JSON:

using IronPdf;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.IO;

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpPost("extract-text")]
    public IActionResult ExtractText(IFormFile pdfFile)
    {
        if (pdfFile == null || pdfFile.Length == 0)
            return BadRequest("No PDF file uploaded.");

        using var stream = new MemoryStream();
        pdfFile.CopyTo(stream);

        var pdf = new PdfDocument(stream.ToArray());
        string extractedText = pdf.ExtractAllText();

        return Ok(new { text = extractedText });
    }
}

Ten punkt końcowy konwertuje przesłany plik na tablicę bajtów i przekazuje go bezpośrednio do PdfDocument. Na dysku nie są zapisywane żadne pliki tymczasowe, co pozwala zachować porządek w kodzie i uniknąć niepotrzebnego obciążenia pamięci. Interfejs IFormFile działa naturalnie z zarówno multipartowymi przesyłkami formularzy, jak i klientami API, takimi jak Postman.

Jak odczytać dane z formularza PDF w ASP.NET Core?

Formularze PDF — zwane również AcroForms — zawierają interaktywne pola, które użytkownicy wypełniają. IronPDF udostępnia pola formularza przez właściwość Form z PdfDocument, dostarczając nazwę i wartość każdego pola w dokumencie.

Poniższy punkt końcowy odczytuje przesłany formularz w formacie PDF i zwraca wszystkie wartości pól jako słownik JSON:

[HttpPost("extract-form")]
public IActionResult ExtractForm([FromForm] IFormFile pdfFile)
{
    if (pdfFile == null || pdfFile.Length == 0)
        return BadRequest("No PDF file uploaded.");

    using var stream = new MemoryStream();
    pdfFile.CopyTo(stream);

    var pdf = new PdfDocument(stream.ToArray());
    var formData = new Dictionary<string, string>();

    if (pdf.Form != null)
    {
        foreach (var field in pdf.Form)
        {
            formData[field.Name] = field.Value;
        }
    }

    return Ok(new { formFields = formData });
}

Każde pole w pdf.Form ma właściwość Name (identyfikator pola ustawiony w narzędziu do tworzenia PDF) i właściwość Value (tekst lub wybór wprowadzony przez użytkownika). W tej kolekcji pojawiają się pola tekstowe, pola wyboru, przyciski opcji i listy rozwijane.

Odpowiedź JSON ułatwia przekazywanie przesłanych formularzy do bazy danych, API strony trzeciej lub kolejki komunikatów bez konieczności dodatkowego parsowania. Dla przepływów pracy, które obejmują tworzenie lub edytowanie formularzy PDF programowo, przewodnik formularzy PDF pokazuje, jak dodawać pola i wypełniać wartości.

Jak wygląda typowa odpowiedź dotycząca ekstrakcji formularza?

Odpowiedź API pokazująca dane JSON wyodrębnione z formularza PDF z polami Imię, Email i Adres wyświetlone w interfejsie testowym Postman ze statusem 200 OK

Powyższa odpowiedź pokazuje wynik 200 OK zawierający nazwy pól i wartości z przykładowego formularza kontaktowego w formacie PDF. Struktura ma postać płaskiej mapy klucz-wartość, która dobrze pasuje do większości schematów baz danych lub ładunków REST.

Jak wyodrębnić dane z tabeli z pliku PDF?

Tabele w plikach PDF są przechowywane jako tekst pozycjonowany — w formacie PDF nie ma natywnej struktury danych tabel. Pobieranie danych tabelarycznych oznacza zatem pobieranie surowego tekstu, a następnie zastosowanie logiki parsowania w celu odtworzenia wierszy i kolumn.

ExtractAllText IronPDF a zachowuje znaki białe i tabulatory, co umożliwia programistyczne dzielenie linii na kolumny. Poniższa akcja kontrolera ilustruje to podejście:

[HttpPost("extract-table")]
public IActionResult ExtractTable([FromForm] IFormFile pdfFile)
{
    if (pdfFile == null || pdfFile.Length == 0)
        return BadRequest("No PDF file uploaded.");

    using var memoryStream = new MemoryStream();
    pdfFile.CopyTo(memoryStream);

    var pdf = new PdfDocument(memoryStream.ToArray());
    string text = pdf.ExtractAllText();

    // Split into lines, then split each line into columns
    string[] lines = text.Split(
        new[] { '\r', '\n' },
        StringSplitOptions.RemoveEmptyEntries
    );

    var tableData = new List<string[]>();
    foreach (string line in lines)
    {
        string[] columns = line
            .Split('\t')
            .Where(c => !string.IsNullOrWhiteSpace(c))
            .ToArray();

        if (columns.Length > 0)
            tableData.Add(columns);
    }

    var table = tableData.Select(r => string.Join(" | ", r)).ToList();
    return Ok(new { Table = table });
}

Takie podejście sprawdza się dobrze w przypadku plików PDF, których tabele zawierają spójne kolumny rozdzielone tabulatorami. W przypadku dokumentów, w których kolumny są oddzielone zmienną ilością spacji, może być konieczne zastosowanie heurystyki minimalnej odstępu lub sprawdzenie pozycji znaków. Przewodnik dotyczący łączenia lub dzielenia plików PDF jest przydatny, gdy przed wyodrębnieniem danych trzeba wyodrębnić konkretne strony zawierające tabele.

Kiedy należy ręcznie analizować tabele?

Odpowiedź API wyświetlająca zestrukturalizowane dane faktury wyodrębnione z PDF, w tym szczegóły klienta, metadane faktury i uporządkowane produkty z wyceną w formacie JSON

Ręczne parsowanie jest właściwym wyborem, gdy plik PDF nie został wygenerowany z HTML lub ustrukturyzowanego źródła danych — na przykład w przypadku zeskanowanych faktur lub dokumentów utworzonych w narzędziach do składu komputerowego. Metoda podziału na zakładki pozwala niezawodnie obsługiwać wiele standardowych plików PDF. Gdy granice kolumn są nieregularne, można udoskonalić logikę, sprawdzając surowe współrzędne znaków za pomocą interfejsu API dostępu do DOM w IronPDF.

W przypadku dokumentów generowanych z HTML należy rozważyć przetworzenie ich za pośrednictwem programu do przetwarzania HTML. Generowanie pliku PDF na podstawie szablonu HTML opartego na danych (omówionego w przewodniku dotyczącym konwersji ciągów HTML do formatu PDF) oznacza, że pozycje tekstu będą przewidywalne, a ekstrakcja danych będzie prosta.

Jak radzisz sobie z asynchronicznym przesyłaniem plików PDF?

Produkcyjne aplikacje .NET Core powinny obsługiwać przesyłanie plików asynchronicznie, aby uniknąć blokowania puli wątków. Metoda IFormFile.CopyToAsync w połączeniu z await utrzymuje kontroler nieblokującym:

[HttpPost("process-upload")]
public async Task<IActionResult> ProcessPdf([FromForm] IFormFile file)
{
    if (file == null || file.Length == 0)
        return BadRequest("No PDF file uploaded.");

    using var ms = new MemoryStream();
    await file.CopyToAsync(ms);

    var pdf = new PdfDocument(ms.ToArray());
    string text = pdf.ExtractAllText();
    int pageCount = pdf.PageCount;

    return Ok(new
    {
        text,
        pages = pageCount
    });
}

Konstruktor PdfDocument jest synchroniczny, ale krok przesyłania — często najwolniejsza część procesu — działa asynchronicznie. Ten wzorzec dobrze skaluje się pod obciążeniem współbieżnym i jest kompatybilny z minimalnymi punktami końcowymi API, handlerami Razor Pages oraz usługami gRPC.

Jak ograniczyć rozmiar pliku do przesłania?

.NET Core nakłada domyślny limit rozmiaru treści żądania wynoszący 30 MB. Dla większych plików PDF, zwiększ limit w Program.cs:

builder.Services.Configure<FormOptions>(options =>
{
    options.MultipartBodyLengthLimit = 100 * 1024 * 1024; // 100 MB
});

Kestrel ma własny limit, który być może również trzeba będzie zwiększyć:

builder.WebHost.ConfigureKestrel(options =>
{
    options.Limits.MaxRequestBodySize = 100 * 1024 * 1024;
});

Ustaw te wartości na podstawie realistycznej maksymalnej wielkości plików PDF, które będzie przetwarzać Twoja aplikacja. Zawsze sprawdzaj typ MIME i rozszerzenie przesłanego pliku przed przekazaniem go do IronPDF, aby zabezpieczyć się przed nieoczekiwanymi danymi wejściowymi.

Jak przekonwertować wyodrębnioną zawartość pliku PDF na inne formaty?

Po uzyskaniu tekstu lub danych z formularza można je przekazać do dowolnego procesu końcowego wymaganego przez aplikację — zapisu do bazy danych, indeksowania wyszukiwania, generowania raportów lub wywołań API. IronPDF obsługuje również konwersję w drugą stronę: renderowanie HTML do PDF.

W przypadkach, gdy chcesz wizualnie przedstawić wyodrębnioną treść, możesz przekształcić oryginalny plik PDF na obrazy, korzystając z przewodnika konwersji plików PDF na obrazy. Jest to przydatne w przypadku funkcji podglądu dokumentów, w których chcesz wyświetlić miniatury stron bez ładowania pełnego pliku PDF w przeglądarce.

Jeśli chcesz zabezpieczyć dokumenty wyjściowe przed dostarczeniem ich użytkownikom, IronPDF obsługuje podpisy cyfrowe i znaki wodne jako etapy przetwarzania końcowego. Dodawanie nagłówków i stopek — opisane w przewodniku dotyczącym nagłówków i stopek — jest równie proste.

Typowe scenariusze pozyskiwania danych z plików PDF i zalecane metody IronPDF
ScenariuszMetoda / właściwość IronPDFUwagi
Wyodrębnij cały tekst stronyPDF.ExtractAllText()Zwraca pełny tekst dokumentu w kolejności czytania
Wyodrębnij tekst z jednej stronyPDF.ExtractTextFromPage(n)Indeks stron od zera
Odczytuj pola AcroFormpdf.FormWymień field.Name i field.Value
Analiza wierszy tabeliExtractAllText() + logika podziałuPodział na tabulatorach lub odstępach
Liczba stronPDF.PageCountPrzydatne do paginacji i walidacji
Wczytaj z tablicy bajtównew PdfDocument(bytes)Nie są wymagane żadne pliki tymczasowe
Wczytaj ze ścieżki plikuPdfDocument.FromFile(path)Dostęp do plików po stronie serwera

Jakie są kolejne kroki po skonfigurowaniu ekstrakcji danych z plików PDF?

Masz teraz gotowe wzorce do wyodrębniania tekstu, odczytu danych z formularzy, analizowania tabel i asynchronicznego przesyłania danych. Oto kilka kierunków, które warto rozważyć w zależności od wymagań Twojej aplikacji.

Jeśli potrzebujesz generować raporty PDF równolegle z procesem ekstrakcji, przegląd funkcji IronPDF obejmuje renderowanie HTML do PDF, nakładanie stempli i manipulację stronami. W przypadku aplikacji, które łączą raporty z wielu źródeł, przewodnik dotyczący łączenia lub dzielenia plików PDF zawiera instrukcje dotyczące łączenia i dzielenia dokumentów.

Aby zapewnić bezpieczne dostarczanie dokumentów, podpisy cyfrowe pozwalają poświadczać pliki PDF przed wysłaniem ich do klientów. Niestandardowe znaki wodne dodają wizualne elementy brandingowe lub etykiety wersji roboczej do generowanych dokumentów.

Jeśli Twój projekt wyodrębnia dane ze skanowanych plików PDF (obrazy zamiast przeszukiwalnego tekstu), będziesz potrzebować etapu OCR przed wywołaniem ExtractAllText. IronOCR firmy Iron Software integruje się z IronPDF w celu obsługi przepływu pracy związanego ze skanowanymi dokumentami.

IronPDF jest dostępny w ramach elastycznych opcji licencyjnych dla indywidualnych programistów i zespołów. Zacznij od bezpłatnej wersji próbnej, aby przetestować wszystkie funkcje bez ograniczeń. Pełna dokumentacja zawiera Dokumentację API, przewodniki dla początkujących oraz uwagi dotyczące wdrażania w środowiskach Windows, Linux, Docker i chmury.

Odczytywanie danych z plików PDF w ASP.NET Core nie wymaga już niskopoziomowego kodu parsującego ani rozbudowanych zależności. Dzięki IronPDF droga od przesłanego pliku do wyodrębnionej treści to zaledwie kilka wierszy kodu, które naturalnie wpisują się w dowolną warstwę kontrolera lub usługi.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta