Natywny Pascal na poziomie kodu źródłowego · Delphi & C++Builder · wdrożenie w pojedynczym pliku EXE

Wkompiluj funkcje PDF klasy korporacyjnej do własnego pliku wykonywalnego — nazwa zawiera "lib", ale nie jest to nakładka na silnik innej firmy

PDF Library for Delphi to własny, natywny zestaw narzędzi PDF firmy losLab napisany w Pascalu i dostarczany na poziomie kodu źródłowego: kompiluje się bezpośrednio w projektach Delphi / C++Builder, obsługuje wdrożenie w pojedynczym pliku EXE i nie wymaga obowiązkowego procesu serwerowego ani zewnętrznej usługi PDF. Łączone mechanizmy zaplecza w języku C (zlib-ng, libjpeg-turbo) są dostarczane jako statyczne pliki obiektowe na liberalnych licencjach

Osiem konkretnych atutów wyróżniających PDF Library for Delphi

Każdy poniższy punkt opisuje dostarczoną funkcję, którą można powiązać z konkretną metodą i pomiarem w dokumentacji referencyjnej oraz notatkach technicznych

Natywna biblioteka na poziomie kodu źródłowego · nie nakładka PDFlib

Mimo członu "lib" w nazwie PDF Library for Delphi jest własnym, natywnym zestawem narzędzi PDF firmy losLab napisanym w Pascalu i włączanym do projektu bezpośrednio jako kod źródłowy — bez komercyjnego silnika PDF innej firmy i bez opłat licencyjnych za środowisko uruchomieniowe. Mechanizmy zaplecza w języku C są łączone statycznie jako pliki obiektowe, dlatego typowe wdrożenie nie wymaga dodatkowej biblioteki DLL

Obsługuje wdrożenie w pojedynczym pliku EXE bez zewnętrznej usługi PDF

Natywne kodeki przyspieszane przez SIMD

Flate za pośrednictwem zlib-ng (dynamiczny wybór SSE2/SSSE3/SSE4.x/PCLMULQDQ/AVX2 w czasie działania na Win64x) oraz JPEG przez libjpeg-turbo (NASM SIMD) — oba jako dołączone statyczne pliki obiektowe na liberalnych licencjach, z przyspieszeniem działającym poniżej granicy API

Publiczny interfejs API pozostaje identyczny w Delphi / C++Builder / ActiveX / DLL

Szyfrowanie sprzętowe AES-NI

Pełny zakres: 40/128-bitowy RC4, 128-bitowy AES i 256-bitowy AES (warianty Acrobat 7/9/X); sprzętowa ścieżka AES-NI z programową ścieżką rezerwową, przy czym tekst zaszyfrowany jest identyczny w obu przypadkach. Szyfrowanie i odszyfrowywanie AES-256 między plikami (EncryptFile / DecryptFile) nigdy nie buduje pełnego grafu obiektów

Alokacja wyrównana do 32 bajtów, identyczny tekst zaszyfrowany dla ścieżki sprzętowej i programowej

Bezpośrednie przepisywanie dokumentów wielogigabajtowych i zawierających miliony obiektów

Ładowanie obiektów na żądanie i przesunięcia 64-bitowe przełamują dawne ograniczenie AnsiString wynoszące 2 GB. Bezpośrednie szyfrowanie, odszyfrowywanie i przepisywanie między plikami używa przesuwnego okna odczytu i nigdy nie wczytuje całego dokumentu do pamięci

2 GB / 1,67 mln obiektów: szyfrowanie ≈ 32 s, odszyfrowywanie ≈ 23 s, pełne przepisywanie ≈ 11 s

Podpisy cyfrowe i PAdES B-LTA

Podpisywanie przy użyciu PFX (SetSignProcessPFXFromFile) i kontenerów kluczy CryptoAPI; PAdES B-B/B-T/B-LT/B-LTA z pełnymi danymi DSS (certyfikaty/CRL/OCSP/VRI) oraz znacznikami czasu RFC 3161. Dwa wyspecjalizowane przykłady: SigningWorkbench i ComplianceWorkbench

Spełnia wymagania długoterminowej archiwizacji i wartości dowodowej podpisów elektronicznych

Fakturowanie elektroniczne: Factur-X / ZUGFeRD / XRechnung

Osadzanie XML w kontenerze PDF/A-3 w celu dostarczania faktur elektronicznych: AddFacturXAssociatedFileFromString, ExtractFacturXXMLToString, ValidateFacturXInvoice, z walidacją względem veraPDF i Mustang

Bezpośrednio wspiera zgodność z europejskimi standardami fakturowania elektronicznego

Zgodność i kontrola preflight

PDF/A (1b/1a/2b/2u/3b/3a/3u), PDF/UA-1, Tagged PDF; wersjonowane kontrakty zapisu PDF 1.2→1.7 (odrzucające niezgodne funkcje); raporty preflight PDF/A i PDF/UA w formatach tekstowym/JSON/HTML/CSV z porównywaniem raportu bazowego na potrzeby bramek CI

Ograniczanie funkcji: LockSaveVersion / UnlockSaveVersion

Wiele interfejsów wdrożeniowych i mechanizmów renderowania

VCL (Delphi Win32/Win64, C++Builder Win64x), Free Pascal / Lazarus (Win64) z tych samych źródeł, DLL (dowolny język), OCX/ActiveX (VB.NET/C#/VC++), projekt Dylib dla macOS; mechanizmy renderowania obejmują GDI+ (wbudowany), opcjonalne PDFium i Cairo (dołączane biblioteki DLL aktualizowane w każdym wydaniu)

Jeden zestaw funkcji dla wielu języków hosta i platform

Zweryfikowana jakość wydania

2 GBobsługa pojedynczego dokumentu, pomiar dla 1,67 mln obiektów
394/394testy DUnitX Win32 / Win64 zakończone powodzeniem
1000+udokumentowanych pozycji referencyjnych API
38wersji językowych dokumentacji

Kto powinien poważnie rozważyć PDF Library for Delphi

Serwerowe potoki PDF o dużej przepustowości

Bezpośrednie szyfrowanie, odszyfrowywanie i wyodrębnianie do plików dla wielogigabajtowych dokumentów zawierających miliony obiektów — funkcje Direct Access nie wczytują dużych plików do pamięci

Podpisy elektroniczne i długoterminowa archiwizacja

PAdES B-LTA, znaczniki czasu RFC 3161, słowniki DSS/VRI — zgodność z przepisami dotyczącymi podpisów elektronicznych i wieloletniego zachowania wartości dowodowej

Zgodność fakturowania elektronicznego

Factur-X / ZUGFeRD / XRechnung osadzone w PDF/A-3 i gotowe do włączenia w przepływy pracy zgodne z europejskimi standardami fakturowania elektronicznego

Produkty wielojęzyczne i obsługujące wiele środowisk hosta

Ten sam zestaw funkcji udostępniany hostom innym niż Delphi, takim jak VB.NET/C#/VC++, za pośrednictwem DLL, OCX/ActiveX oraz biblioteki Dylib dla macOS

Aplikacje komputerowe i dostarczanie w jednym pliku

Oprogramowanie, które musi być dostarczane jako pojedynczy plik EXE, nie może zawierać biblioteki PDF DLL innej firmy i ma umożliwiać debugowanie całego potoku na poziomie kodu źródłowego

Wysokiej jakości skład tekstu i publikowanie

Standard 14, TrueType, OpenType, Type1, CJK (z dołączonymi zasobami Adobe CMap), tekst HTML, kerning i tabele

Zaszyfruj duży dokument w kilku wierszach

Bezpośrednie szyfrowanie między plikami bez wczytywania całego dokumentu do pamięci:

uses PDFlibrary;

// Bezpośrednie szyfrowanie AES-256 pliku PDF o rozmiarze około 2 GB
PDFlib.EncryptFile('big-input.pdf',
                   'big-encrypted.pdf',
                   'owner-password',
                   esAES256);
// Około 32 s dla 1,67 mln obiektów, szczytowe użycie pamięci znacznie mniejsze od rozmiaru pliku

Następne kroki

Zacznij od strony głównej dokumentacji referencyjnej i przewodnika Pierwsze kroki, przejdź do grup funkcji, takich jak Zabezpieczenia i podpisy, Przetwarzanie dokumentów i Dostęp bezpośredni, albo przeczytaj historię wydań