Native Linux und macOS
Das native FPC-Backend unterstützt headless-Bibliotheksworkflows unter Linux x64 und macOS ARM64 und erzeugt echte ELF- und Mach-O-Programme
Verwenden Sie die vorhandene TPDFlib-API für PDF-Erzeugung, Speichern/Laden, Textextraktion und -bearbeitung, strukturierte Extraktion, portable OCR-Rückrufe, Bitmap-Rendering, Metadaten, Verschlüsselung, Netzwerk-Bereichszugriff und native PFX-Signierung
Laufzeitabhängigkeiten
| Anbieter | Bibliothek | Zweck |
|---|---|---|
| OpenSSL 3 | libcrypto | AES CBC/GCM, Digests, PKCS12-Identitäten, CMS-Signaturen, Integrität und explizite Vertrauensankerketten |
| libcurl | libcurl mit asynchronem DNS | HTTP/HTTPS, begrenzter binärer Transport, Bereichszugriff und RFC-3161-Anfragen |
| Cairo | libcairo | Bitmap-Bildflächen, Pfade, Beschneidung, Glyphenkonturen und Bilder |
| Fontconfig | libfontconfig | Echte native Zuordnung von Schriftdateien, einschließlich expliziter Familiensubstitution |
| OpenJPEG 2 | libopenjp2 | JPEG-2000-Dekodierung und -Kodierung |
Linux lädt die entsprechenden System-SONAMEs; macOS verwendet ARM64-Bibliotheken unter /opt/homebrew und das System-libcurl
Fehlende Bibliotheken, Symbole oder nicht unterstützte Operationen führen zu expliziten Fehlern; kein Windows-Gerätekontext-Ersatz wird verwendet
Signierung und Zeitstempel
Der standardmäßige PFX-Anbieter unterstützt echte RSA- und EC-Identitäten, detached CMS, CAdES und ältere angehängte SHA1-Profile; die Verifikation prüft die PDF-ByteRange-Bytes und die CMS-Signatur
Die Zertifikatskettenprüfung erfordert explizite Vertrauensanker; eingebettete Zertifikate gewähren kein Vertrauen, und Integrität allein bedeutet kein Vertrauen
ApplyPAdESSignatureTimeStamp verwendet den konfigurierten standardmäßigen nativen HTTP-Transport, um ein echtes RFC-3161-Token zu holen und anzuhängen; reservieren Sie ausreichend /Contents-Kapazität vor der ursprünglichen Signatur
Die Zeitstempelprüfung prüft das signierte Token, den Nachrichtenabdruck, die exklusive kritische timeStamping-EKU, den TSA-Namen, optionale erwartete Policy/Nonce und die vertrauenswürdige Zertifikatskette zum Zeitpunkt der Token-Erzeugung
Dokumentzeitstempel prüfen zusätzlich den tatsächlichen PDF-ByteRange-Abdruck; der Aufrufer kann den vorhandenen DocTimeStamp-Durchreich-Workflow verwenden und das Token liefern
Metadaten und Rendering
XMP verwendet ein echtes namensraumbewusstes DOM und bewahrt bei Bearbeitungen nicht zugehörige Eigenschaften
DTD-Deklarationen werden vom XML-Reader unabhängig von der Quellkodierung abgelehnt; Eingabe und dekodierte Zeichen sind begrenzt, und ein Streaming-Durchlauf begrenzt Tiefe und Knotenereignisse vor dem DOM-Aufbau
Das Rendern verwendet echten nativen Bitmap-Speicher und Cairo-Bildflächen; bandweises Rendern bewahrt Gerätekoordinaten und verwendet Schutzzeilen, damit Antialiasing an Grenzen konsistent bleibt
Das native Einbetten von Familienschriften löst eine echte Fontconfig-Datei auf und bettet ein vollständiges eigenständiges TrueType-Programm mit CIDFontType2, Identity-CIDToGIDMap, initialisierten Metriken und Unicode-Breiten ein; BMP-Text und portable OCR-Ebenen überleben Speichern und erneutes Laden des PDF
Der Einstiegspunkt lehnt nicht eingebettete Familienschriften, Sammlungen, CFF-Programme und reine Bitmap-Einbettungsrechte ab; eingeschränktes Einbetten erfordert die vorhandene explizite Rechte-Übersteuerung, und Schriften, die Subsetting verbieten, bleiben vollständige Programme
Grenzen
- Windows-Gerätekontexte, EMF, GUI, Zwischenablage und Drucken liegen außerhalb des nativen headless-Backends
- Komplexe native Textformung und Identitäten aus dem Windows-Systemzertifikatspeicher sind nicht verfügbar
- Der Einstiegspunkt zum Einbetten eigenständiger TrueType-Schriften unterstützt derzeit BMP-Text; Text aus ergänzenden Ebenen, TTC-Face-Extraktion und CFF-Einbettung liegen außerhalb dieses Einstiegspunkts
- Online-OCSP/CRL-Widerruf ist nicht verfügbar; Anfragen nach Widerrufsprüfung melden ein unbekanntes Ergebnis
- Der standardmäßige native PFX-Anbieter lehnt RSA-PSS sowie zusätzliche Policy-, Commitment- oder Widerrufs-Signaturattribute ab
- Native CMYK/ICC-Transformationen und indiziertes 1-Bit-BMP-Schreiben sind nicht verfügbar
- HTTP erfordert Unterstützung für asynchrones DNS in libcurl, um DNS-Lookup-Zeitlimits einzuhalten
Erzeugen und Prüfen
python3 Tests/Native/run_native_tests.py --compiler /path/to/fpc --output /tmp/pdflib-native-tests
Übergeben Sie --config /path/to/fpc.cfg für eine explizite Compiler-Konfiguration; der Runner ändert keine globalen Compiler-Einstellungen und fügt kein -FcUTF8 hinzu
Die Suite prüft echte native Programmformate und schreibt einen JSON-Bericht mit Compiler- und Abhängigkeitsversionen, Quellhashes, Programmhashes, Ergebnissen und Grenzen
Die eingecheckten Tests/Native-Fixtures decken PDF-Speichern/-Laden/-Rendering, Text-Workflows, Verschlüsselung, Metadaten, Signaturen, echten HTTP/TSA-Verkehr und negative Sicherheitsfälle ab