Native Linux and macOS

Natywny backend FPC obsługuje przepływy biblioteki bez GUI na Linux x64 i macOS ARM64, produkując prawdziwe programy ELF i Mach-O

Istniejące API TPDFlib obejmuje tworzenie PDF, zapis i wczytywanie, wyodrębnianie i edycję tekstu, wyodrębnianie strukturalne, przenośne procedury zwrotne OCR, renderowanie bitmap, metadane, szyfrowanie, sieciowy dostęp range i natywne podpisywanie PFX

Zależności środowiskowe

DostawcaBibliotekaPrzeznaczenie
OpenSSL 3libcryptoAES CBC/GCM, skróty, tożsamości PKCS12, podpisy CMS, integralność i jawne łańcuchy zakotwiczeń zaufania
libcurllibcurl z asynchronicznym DNSHTTP/HTTPS, ograniczony transport binarny, dostęp range i żądania RFC 3161
CairolibcairoPowierzchnie obrazów bitmapowych, ścieżki, przycinanie, kontury glifów i obrazy
FontconfiglibfontconfigRzeczywiste dopasowywanie natywnych plików czcionek, w tym jawne podstawienie rodziny
OpenJPEG 2libopenjp2Dekodowanie i kodowanie JPEG 2000

Linux ładuje odpowiednie systemowe SONAME; macOS używa bibliotek ARM64 z /opt/homebrew i systemowego libcurl

Brakujące biblioteki, symbole lub nieobsługiwane operacje kończą się jawnym błędem; nie stosuje się żadnego zamiennika kontekstu urządzenia Windows

Podpisywanie i znaczniki czasu

Domyślny dostawca PFX obsługuje rzeczywiste tożsamości RSA i EC, odłączony CMS, CAdES oraz starsze profile z dołączonym SHA1; weryfikacja sprawdza bajty ByteRange PDF i podpis CMS

Weryfikacja łańcucha certyfikatów wymaga jawnych zakotwiczeń zaufania; wbudowane certyfikaty nie dają zaufania, a sama integralność jeszcze o zaufaniu nie świadczy

ApplyPAdESSignatureTimeStamp używa skonfigurowanego domyślnego natywnego transportu HTTP, aby pobrać i dołączyć prawdziwy token RFC 3161; przed oryginalnym podpisem zarezerwuj wystarczającą pojemność /Contents

Weryfikacja znacznika czasu sprawdza podpisany token, odcisk wiadomości, wykluczający krytyczny EKU timeStamping, nazwę TSA, opcjonalne oczekiwane policy/nonce oraz zaufany łańcuch certyfikatów w momencie generowania tokenu

Znaczniki czasu dokumentu weryfikują dodatkowo rzeczywisty odcisk ByteRange PDF; wywołujący może użyć istniejącego przepływu przelotowego DocTimeStamp i dostarczyć token

Metadane i renderowanie

XMP używa prawdziwego DOM świadomego przestrzeni nazw i zachowuje niepowiązane właściwości podczas edycji

Deklaracje DTD są odrzucane przez czytnik XML niezależnie od kodowania źródła; znaki wejściowe i zdekodowane są limitowane, a przejście strumieniowe ogranicza głębokość i zdarzenia węzłów przed budową DOM

Renderowanie używa rzeczywistego natywnego magazynu bitmap i powierzchni obrazów Cairo; renderowanie pasmowe zachowuje współrzędne w przestrzeni urządzenia i używa wierszy ochronnych, aby antyaliasing na granicach był spójny

Natywne osadzanie czcionek rodzinnych rozwiązuje rzeczywisty plik Fontconfig i osadza kompletny samodzielny program TrueType z CIDFontType2, Identity CIDToGIDMap, zainicjowanymi metrykami i szerokościami Unicode; tekst BMP i przenośne warstwy OCR przeżywają zapis i ponowne wczytanie PDF

Punkt wejścia odrzuca nieosadzone czcionki rodzinne, kolekcje, programy CFF i prawa osadzania wyłącznie bitmapowego; osadzanie ograniczone wymaga istniejącego jawnego nadpisania praw, a czcionki zakazujące subsettingu pozostają kompletnymi programami

Limity

Budowa i weryfikacja

python3 Tests/Native/run_native_tests.py --compiler /path/to/fpc --output /tmp/pdflib-native-tests

Przekaż --config /path/to/fpc.cfg dla jawnej konfiguracji kompilatora; runner nie zmienia globalnych ustawień kompilatora ani nie dodaje -FcUTF8

Zestaw testów sprawdza rzeczywiste natywne formaty plików wykonywalnych i zapisuje raport JSON z wersjami kompilatora i zależności, skrótami źródeł i plików wykonywalnych, wynikami i limitami

Załączone w repozytorium fixture'y Tests/Native obejmują zapis, wczytanie i renderowanie PDF, przepływy tekstowe, szyfrowanie, metadane, podpisy, rzeczywisty ruch HTTP/TSA i negatywne przypadki bezpieczeństwa

Indeks dokumentacji