IRONSOFTWAREHOME
KORZYSTANIE Z IRONPDF

Jak wygenerować plik PDF w .NET Core za pomocą IronPDF

Curtis Chau
Curtis Chau
Updated: 21 kwietnia 2026

Problem zgodności, a nie tylko problem formatowania

Strona główna IronPDF Większość aplikacji FinTech przechowuje dane transakcji w bazie danych relacyjnej i generuje potwierdzenia na żądanie. Kiedy klient o nie poprosi, aplikacja ponownie zapytuje rekord i renderuje widok. Takie podejście ma zasadniczą wadę: wynikowy plik PDF lub "paragon" odzwierciedla aktualny stan danych, a nie to, co klient widział w momencie zakończenia transakcji.

Rekordy bazy danych mogą być korygowane, zmieniane lub aktualizowane w ramach normalnych procesów operacyjnych. Potwierdzenie po powtornym zapytaniu nie jest dokumentem historycznym; to aktualna migawka z przeszlym znacznikiem czasu. Gdy przetwarzacz platnosci spotyka sie z reklamacjami, gdy zespol zgodnosci neobanka odpowiada regulatorowi, gdy rejestr audytu platformy pożyczkowej zostaje wezwany do sądu, lub gdy wymiana kryptowalut musi wykazać integralność dokumentów dla egzaminatora KYC, potrzebny jest dokument, a nie zapytanie.

Dokument PDF zapisany w momencie rozliczenia, z hashowaniem w celu wykrywania manipulacji i zapisany w niezmiennej pamięci, jest właśnie tym dokumentem. Dzięki temu istniejące dokumenty PDF zachowają swoją aktualność przez lata. Niezależnie od tego, czy masz do czynienia z raportami finansowymi, czy prostym pierwszym plikiem PDF, generowanie dokumentów musi być ostateczne.

Obowiązki dotyczące prowadzenia dokumentacji wynikające z norm PCI-DSS, SOX i AML nie wymagają konkretnie dokumentów PDF generowanych programowo, ale wymagają dokumentacji, którą można wykazać i poddać audytowi. Renderowany, zaszyfrowany i opatrzony sygnaturą czasową plik PDF spełnia ten wymóg w sposób, w jaki sam wiersz bazy danych tego nie robi. Pozniej w tym artykule przyjrzymy się IronPDF przykładowi, jak ten proces może działać podczas tworzenia nowego dokumentu PDF.

Rozwiązanie w skrócie: Konwersja treści HTML do formatu PDF w języku C#

Biblioteka IronPDF firmy Iron Software generuje potwierdzenie w formacie PDF dokładnie w momencie zakończenia transakcji, synchronicznie, w ramach procesu transakcyjnego. Bibliotekę IronPDF można zainstalować za pomocą menedżera pakietów NuGet lub konsoli menedżera pakietów w programie Visual Studio. Uzywajac .NET CLI, po prostu uruchom instalowanie pakietu IronPDF.

Potwierdzenie jest generowane na podstawie szablonu HTML lub pliku HTML, opatrzone identyfikatorem transakcji i sygnaturą czasową, hashowane i zapisywane w niezmiennej pamięci. Będzie to dokument ostateczny. Nie ma definicji SSRS do utrzymania, nie ma API dokumentów stron trzecich do wywołania i nie ma przeglądarki bezinterfejsowej typu sidecar. IronPDF działa w ramach procesu jako biblioteka NuGet do zadań związanych z plikami PDF.

Kluczowe korzyści z automatyzacji przepływu pracy z dokumentami:

  • Zachowanie formatowania na wszystkich rozmiarach stron.

  • Obsługa podpisów cyfrowych w celu zapewnienia integralności dokumentów.

  • Możliwość tworzenia obiektów PDF na podstawie strony internetowej lub ciągu znaków HTML.

  • Logo klientów i elementy identyfikacji wizualnej firmy Iron Software można łatwo wstawić

Jak działa proces od transakcji do paragonu

Scenariusz idealny

Płatność przebiega pomyślnie, a zapis transakcji jest zapisywany w bazie danych. Ten sam handler — przed zwróceniem odpowiedzi — wypełnia szablon potwierdzenia zawartości HTML szczegółami transakcji: identyfikatorem, sygnaturą czasową UTC, kwotą i walutą, identyfikatorami nadawcy i odbiorcy, zestawieniem opłat oraz treścią dynamiczną.

Renderer new ChromePdfRenderer (a konkretnie var renderer = new ChromePdfRenderer();) konwertuje zawartość internetową do formatu PDF. Powstała tablica bajtów PDF jest natychmiast hashowana przy użyciu algorytmu SHA-256.

using IronPdf
using System.Security.Cryptography;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.MarginTop = 15;

renderer.RenderingOptions.MarginBottom = 15;

string receiptHtml = $@"
    <h1>Transaction Receipt</h1>
    <p><strong>Transaction ID:</strong> {tx.Id}</p>
    <p><strong>Timestamp (UTC):</strong> {tx.CompletedAt:u}</p>
    <p><strong>Amount:</strong> {tx.Amount:F2} {tx.Currency}</p>
    <p><strong>Fee:</strong> {tx.Fee:F2} {tx.Currency}</p>
    <p><strong>From:</strong> {tx.SenderRef} &rarr; <strong>To:</strong> {tx.ReceiverRef}</p>
    <p><strong>Resulting Balance:</strong> {tx.ClosingBalance:F2} {tx.Currency}</p>";

var pdf = renderer.RenderHtmlAsPdf(receiptHtml);

string hash = Convert.ToHexString(SHA256.HashData(pdf.BinaryData));

await _db.StoreReceiptHashAsync(tx.Id, hash);

await _blobStorage.UploadImmutableAsync($"receipts/{tx.Id}.pdf", pdf.BinaryData);

Przykładowy wygenerowany dokument PDF

Przykładowy wynik PDF IronPDF Nowy dokument PDF jest następnie zapisywany w niezmiennej pamięci. Niezależnie od tego, czy jest to Twój pierwszy plik PDF, czy też łączysz istniejące pliki PDF, proces pozostaje taki sam. Kopia jest wyświetlana w przeglądarce plików PDF dla klienta. Podczas prezentacji produktów Iron Software zespół często podkreśla, jak zaledwie kilka linii kodu pozwala obsługiwać dynamiczne raporty i zadania, takie jak konwersja HTML do PDF lub generowanie plików PDF.

Aby ułatwić korzystanie z interfejsu użytkownika (UI) i doświadczenia użytkownika (UX), na pulpicie nawigacyjnym mogą być widoczne klucze w niebieskich lub szarych kółkach, oznaczające zabezpieczone, zaszyfrowane pliki. Ikona w postaci strzałki w prawo przy linku do pobrania ułatwia użytkownikom nawigację.

Wypisany nagłówek lub stopka potwierdza pochodzenie dokumentu na każdej stronie:

var shortHash = hash[..12];

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = $@"
        <div style='font-size:9px; color:#666; text-align:center;'>
            Generated: {tx.CompletedAt:u} &nbsp;|&nbsp;
            TX: {tx.Id} &nbsp;|&nbsp;
            SHA-256: {shortHash}...
        </div>"
};
HTML

Przykład stopki

Przykładowa stopka Każda strona potwierdzenia zawiera identyfikator transakcji, znacznik czasu generacji oraz skrócony hash, co wystarcza, aby specjalista ds. zgodności mógł przeprowadzić wyrywkową kontrolę integralności bez konieczności uzyskiwania dostępu do bazy danych.

Przypadki skrajne

Anulacje i zwroty. Nieudana lub anulowana transakcja nadal wymaga dokumentu. Wygeneruj oddzielny plik PDF dla zdarzenia odwrócenia, odwołując się do oryginalnego identyfikatora transakcji i skrótu paragonu. Paragon odwrotu stoi samodzielnie jako zapisa tego, co się wydarzyło; nie zastepuje ani nie modyfikuje oryginalu.

Transakcje wielowalutowe. Szablon HTML musi poprawnie obsługiwać umieszczanie symboli walut, separatorów dziesiętnych oraz ujawnianie kursów wymiany zgodnie z ustawieniami regionalnymi. Większość tego zadania realizują ciągi formatujące w języku C#: {amount.ToString("F2", CultureInfo.GetCultureInfo("de-DE"))} dla niemiećkich konwencji dziesiętnych, wyraźne umieszczanie symboli dla walut takich jak JPY, które nie używają miejsc po przecinku. Kurs wymiany walut i jego data powinny pojawić się jako osobna pozycja, a nie wynikać z kwot.

Znaczniki regulacyjne. Niektóre jurysdykcje wymagają umieszczenia określonego tekstu na niektórych typach dokumentów, np. "NIE JEST TO FAKTURA PODATKOWA", "NIEOFICJALNA KOPIA" lub sformułowania dotyczące ujawniania informacji specyficzne dla danej jurysdykcji. Są one czysto obsługiwane jako nakładka HTML w szablonie lub jako stylizowany pasek nagłówka, bez modyfikowania podstawowych danych transakcji.

Dlaczego ma to znaczenie poza kwestią zgodności

InteresariuszeCo otrzymują
Zgodność z przepisami / Kwestie prawneNiezmienne, zaszyfrowane potwierdzenia, które w ciągu kilku minut spełniają wymagania audytowe, bez ponownego wyszukiwania, bez odtwarzania, bez wyjaśniania, dlaczego aktualny wpis w bazie danych różni się od tego, co widział klient
Obsługa klientaDokładny dokument, który klient otrzymał w momencie transakcji, dzięki czemu rozstrzyganie sporów opiera się na faktach, a nie na interpretacji
KlienciProfesjonalny, opatrzony logo firmy paragon w skrzynce odbiorczej w ciągu kilku sekund od każdej transakcji, ten sam dokument, który firma przechowuje w swoich aktach
InżynieriaJeden szablon HTML do utrzymania, renderowany w trakcie procesu bez zależności od usług zewnętrznych, bez konieczności monitorowania umowy API i bez konieczności śledzenia rozliczeń za poszczególne dokumenty
Finanse / KsięgowośćWyjście archiwalne w formacie PDF/A do długoterminowego przechowywania, zgodne z polityką przechowywania dokumentów i spełniające wymagania dotyczące prowadzenia dokumentacji finansowej bez konieczności stosowania oddzielnego procesu archiwizacji
Porady: Włącz wyjście PDF/A za pomocą jednej opcji renderowania — renderer.RenderingOptions.PdfArchiveFormat = IronPdf.Rendering.PdfArchiveFormat.PDF_A_3B — aby tworzyć dokumenty archiwalne zgodne z normą ISO, dopuszczalne do długoterminowego przechowywania dokumentacji finansowej.

Zakończenie

Różnica między 'przechowujemy dane transakcji' a 'mamy audytowalny zapis' jest mniejsza niż się wydaje; to jedno kroki renderowania dodać do przepływu zatwierdzania transakcji. Ten krok pozwala uzyskać dokument o pochodzeniu, którego sam wiersz w bazie danych nie jest w stanie zapewnić: sygnaturę czasową, której nie można cofnąć, skrót wykrywający manipulacje oraz fizyczny artefakt, który wygląda tak samo niezależnie od tego, czy otwiera go klient, czy żąda go audytor.

IronPDF zapewnia zespołom .NET pełną kontrolę nad tym etapem, od renderowania potwierdzenia HTML po umieszczanie stempla w stopce, haszowanie danych wyjściowych i przesyłanie strumieniowe do niezmiennej pamięci masowej — wszystko to za pomocą jednej biblioteki dostępnej na stronie ironpdf.com. Jeśli tworzysz lub wzmacniasz potok transakcyjny, rozpocznij bezpłatny 30-dniowy okres próbny i sprawdź, czy generowane potwierdzenia są zgodne z Twoimi wymaganiami, zanim wprowadzisz rozwiązanie do produkcji.

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.

Your trial license will be sent to your email address

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