PDFium Component Docs

Podpisy PAdES · szyfrowanie PDF 2.0 · sześć standardów ISO · Delphi / C++Builder / Lazarus

Wszystko, czego silnik renderujący nie potrafi — napisane w Object Pascalu

Silnik rysuje strony i odczytuje struktury. Nie podpisze dokumentu, nie zapisze szyfrowania, nie zweryfikuje standardu PDF ani nie utworzy rewizji zlinearyzowanej czy przyrostowej. PDFium Delphi Component implementuje to wszystko w warstwie ponad PDFium: ponad 62 000 linii kodu w 36 jednostkach, które nie mają odpowiednika w API silnika, plus architektura przeglądarki i lektora dostępności — a każda linia trafia do klienta jako kod źródłowy

Przeczytaj pełne omówienie Przeglądaj katalog funkcji

Dlaczego PDFium Delphi Component zamiast innych opakowań PDF

Każdy poniższy punkt to dostarczona funkcja, którą można zweryfikować w dokumentacji API i demonstracjach

Podpisy cyfrowe, a nie tylko odczyt podpisów

Silnik potrafi zgłosić, że słownik podpisu istnieje. Ta biblioteka taki podpis tworzy: PAdES bazowe B-B, B-T, B-LT i B-LTA wg ETSI EN 319 142-1, CMS / CAdES SignedData wg RFC 5652, żądania znaczników czasu RFC 3161, wstrzykiwanie Document Security Store, znaczniki czasu archiwalne i walidacja zaufania łańcucha certyfikatów. Podpisywanie zdalne i HSM dzielą operację tak, aby klucz prywatny nigdy nie musiał trafić na stację roboczą

SignPades / ValidatePadesTrust / PreparePadesRemoteSignature

Szyfrowanie, które zapisujesz, a nie tylko otwierasz

ISO 32000-2 AES-256 z derywacją klucza R6 z algorytmu 2.B, pełne pokrycie szyfrowania strumieni i ciągów, ISO/TS 32003 AES-GCM oraz tokeny PDF MAC z ISO/TS 32004. Prymitywy AES, SHA-2, SHA-3, HMAC i ASN.1 to czysty Object Pascal, zweryfikowany względem opublikowanych wektorów testowych FIPS — do wdrożenia ani przeglądu bezpieczeństwa nie wchodzi żadna zewnętrzna biblioteka C

SaveAsEncrypted; FPdfAes / FPdfSha512 / FPdfAsn1

Zapisywarka PDF, której silnik nie posiada

Silnik oferuje jeden sekwencyjny zapis całego pliku. Ta biblioteka zapisuje na tym fundamencie własne rewizje: zlinearyzowany Fast Web View z tablicami podpowiedzi Annex F, pakowanie strumieni obiektów i strumieni xref oraz przyrostowe rewizje brudnych obiektów zachowujące poprzednie wyjście bajt po bajcie. Uszkodzone pliki otrzymują ścisłe, zgodne i odzyskujące polityki ładowania ze ustrukturyzowaną diagnostyką zamiast cichej naprawy

SaveAsLinearized / SaveAsObjectStream / BeginIncrementalSave / SaveAsRepaired

Ekstrakcja treści wykraczająca poza czysty tekst

GetStructuredText buduje hierarchię strona / blok / linia / stylizowany przebieg z geometrii znaków i semantyki Tagged PDF. ExtractTables wykrywa tabele z obramowaniem i wyrównane do białych przestrzeni, zachowuje scalone zakresy i emituje CSV lub JSON. BuildReflowDocument zamienia PDF o stałym układzie w semantyczne HTML. XFDF i FDF wymieniają dane formularzy oraz 18 podtypów adnotacji — formaty, dla których silnik nie udostępnia żadnego API

ExtractTables / BuildReflowDocument / ExportXFDF

Najszersze wsparcie IDE w swojej klasie

Delphi / C++Builder (RAD Studio XE5 aż do 13.1 Florence) oraz Lazarus / Free Pascal 3.8+, Win32 i Win64. Trzy rodziny IDE współdzielą te same testowe pliki PDF i zestawy regresyjne

1257 przypadków testowych Pascal + 515 C++, zgodność na poziomie bajtów

Pełne spektrum standardów PDF

Wyjście PDF/A-1b (SaveAsPdfA) + walidacja (ValidatePdfA), a także walidatory PDF/UA, PDF/E, PDF/X, PDF/R i PDF/VT z kodami wyników na poziomie klauzul, wstrzykiwaniem znaczników i bramkowaniem zgodności wersji. PDF/A obejmuje ISO 19005 części 1 do 4, PDF/X sięga X-6, a PDF/VT zawiera pakowanie strumieni VT-2s

Dedykowane jednostki FPdfPdfa/Pdfua/Pdfe/Pdfx/Pdfr/Pdfvt.pas

Lektor dostępności / transformacje dla słabowidzących

TPdfReadingSession organizuje czytanie na głos przez silniki TTS hosta (jednostki czytania na poziomie zdań, wyróżnianie na poziomie słów, mapowanie tekstu mówionego); dodatkowo transformacje dla słabowidzących InvertPdfBitmap, GrayscalePdfBitmap, DuotonePdfBitmap oraz podgląd dwutonowy trybu nocnego na żywo

Warstwa dostępności, której większość opakowań w ogóle nie posiada

Renderowanie progresywne zero-copy z możliwością przerwania

Ścieżka renderowania zapisuje wyjście PDFium bezpośrednio do bufora DIB docelowego TBitmap, pomijając kopiowanie pełnej strony pikseli w każdej klatce; RenderPageProgressive odpytuje token anulowania między iteracjami i może zostać przerwany w trakcie renderowania

Oszczędza jedno kopiowanie szerokość×wysokość×4 bajty na klatkę przy wysokim DPI

Strumieniowanie na żądanie dla PDF-ów wielo-gigabajtowych

Za pomocą adaptera TStream na żądanie w LoadCustomDocument PDFium czyta blokami — dokumenty wielo-gigabajtowe, zdalne lub bazodanowe wczytują się bez kopii w pamięci, a użyteczny pierwszy widok pojawia się niemal natychmiast

Dokumenty 2.x GB: niemal natychmiastowy pierwszy widok

Trzy komponenty + 33 współdzielone demonstracje

TPdf (silnik dokumentów), TPdfView (interaktywna przeglądarka), TPdfThumbnailView (nawigacja miniaturami); 33 demonstracje COMMON współdzielone przez trzy środowiska IDE, obejmujące podgląd, wyszukiwanie, wypełnianie formularzy, scalanie/podział, eksport wsadowy, drukowanie, audyt bezpieczeństwa, raporty preflight i więcej

PDFViewer / PreflightReport / SecurityAudit / StandardsLab itd.

Domyślne ustawienia nastawione na bezpieczeństwo

Lista dozwolonych akcji łączy (LinkOptions), akcje uruchamiania wyłączone domyślnie oraz demonstracja SecurityAudit do audytu powierzchni ryzyka — bezpieczny od początku, zamiast domyślnie otwierać niebezpieczne akcje

Przystosowany do wdrożeń wrażliwych na bezpieczeństwo w finansach / ochronie zdrowia

Kod źródłowy w zestawie · wolny od opłat · długoterminowe wsparcie

Dostarczany z kodem źródłowym Pascal, bez opłat licencyjnych w czasie działania, długoterminowe utrzymanie. Zawiera biblioteki Win32/Win64 pdfium.dll i pdfium.v8.dll (z obsługą V8/XFA), z opcjonalnymi punktami zaczepienia renderowania Skia

Brak opłat za każde wdrożenie

Dowody

3rodziny IDE: Delphi / C++Builder / Lazarus
6+standardy PDF: A / UA / E / X / R / VT
33współdzielone demonstracje COMMON dla trzech IDE
1770+przypadki testowe regresyjne Pascal + C++

Kto powinien wybrać PDFium Delphi Component

Przeglądarki / czytniki dokumentów

Osadzone przeglądarki PDF wymagające renderowania i interakcji w jakości produkcyjnej (zaznaczanie tekstu, wyróżnianie wyszukiwania, łącza, skalowanie, ciągły układ dwustronicowy)

Technologie dostępności / asystujące

Organizacja czytania na głos i transformacje dla słabowidzących użytkowników — warstwa, której większość opakowań PDF w ogóle nie posiada

Łańcuchy narzędzi zgodności / preflight

Wymagające generowania i walidacji PDF/A, dostępności PDF/UA, bramkowania wersji oraz przyjaznych dla CI raportów preflight

Duże / zdalne dokumenty

Wielo-gigabajtowe lub bazodanowe pliki PDF, które muszą być wczytywane na żądanie zamiast trzymane w całości w pamięci

Zespoły pracujące w wielu IDE

Zespoły korzystające jednocześnie z Delphi, C++Builder i Lazarus — jeden zestaw komponentów, te same dane testowe, te same demonstracje

Wdrożenia wrażliwe na bezpieczeństwo

Scenariusze w finansach, ochronie zdrowia i administracji ze ścisłą kontrolą nad akcjami łączy / uruchamiania

Wyrenderuj stronę w kilku linijkach

Bez ręcznie pisanego C interop — wprost natywne komponenty Pascal:

uses PDFium;

var
  Pdf: TPdf;
  Bmp: TBitmap;
begin
  Pdf := TPdf.Create(nil);
  try
    Pdf.FileName := 'report.pdf';
    Pdf.Active := True;
    Pdf.PageNumber := 0;              // pages are zero-based

    Bmp := Pdf.RenderPage(0, 0,
      Round(PointsToPixels(Pdf.PageWidth, 150)),
      Round(PointsToPixels(Pdf.PageHeight, 150)));
    try
      Bmp.SaveToFile('page1.bmp');
    finally
      Bmp.Free;
    end;
  finally
    Pdf.Free;
  end;
end;

Następne kroki

Zacznij od omówienia produktu i szybkiego startu, przejrzyj pełny katalog funkcji i przykłady, albo przeczytaj informacje o wersji, aby poznać najnowsze dostarczenia