Native Linux en macOS
De native FPC-backend ondersteunt headless bibliotheekworkflows op Linux x64 en macOS ARM64 en produceert echte ELF- en Mach-O-programma's
Gebruik de bestaande TPDFlib-API voor het maken van PDF's, opslaan/laden, tekstextractie en -bewerking, gestructureerde extractie, portable OCR-callbacks, bitmaprendering, metadata, versleuteling, netwerkrange-toegang en native PFX-ondertekening
Runtime-afhankelijkheden
| Provider | Bibliotheek | Doel |
|---|---|---|
| OpenSSL 3 | libcrypto | AES CBC/GCM, digests, PKCS12-identiteiten, CMS-handtekeningen, integriteit en expliciete vertrouwensankerketens |
| libcurl | libcurl met asynchrone DNS | HTTP/HTTPS, begrensde binaire transporten, range-toegang en RFC 3161-verzoeken |
| Cairo | libcairo | Bitmap-afbeeldingssurfaces, paden, clipping, glyph-contours en afbeeldingen |
| Fontconfig | libfontconfig | Echte koppeling aan native lettertypebestanden, inclusief expliciete familievervanging |
| OpenJPEG 2 | libopenjp2 | JPEG 2000-decoding en -encoding |
Linux laadt de bijbehorende systeem-SONAME's; macOS gebruikt ARM64-bibliotheken onder /opt/homebrew en de systeem-libcurl
Ontbrekende bibliotheken, symbolen of niet-ondersteunde bewerkingen leiden tot expliciete fouten; er wordt geen Windows-devicecontextvervanging gebruikt
Ondertekening en tijdstempels
De standaard PFX-provider ondersteunt echte RSA- en EC-identiteiten, detached CMS, CAdES en oudere attached SHA1-profielen; verificatie controleert de PDF ByteRange-bytes en de CMS-handtekening
Certificaatketenverificatie vereist expliciete vertrouwensankers; ingesloten certificaten verlenen geen vertrouwen, en integriteit alleen impliceert geen vertrouwen
ApplyPAdESSignatureTimeStamp gebruikt de geconfigureerde standaard native HTTP-transport om een echte RFC 3161-token op te halen en toe te voegen; reserveer voldoende /Contents-capaciteit vóór de oorspronkelijke handtekening
Tijdstempelverificatie controleert de ondertekende token, de message imprint, het exclusieve kritieke timeStamping-EKU, de TSA-naam, optionele verwachte policy/nonce en de vertrouwde certificaatketen op het moment van token-generatie
Document-tijdstempels verifiëren ook de echte PDF ByteRange-imprint; de aanroeper kan de bestaande DocTimeStamp-passthrough-workflow gebruiken en de token zelf aanleveren
Metadata en rendering
XMP gebruikt een echte naamruimtebewuste DOM en behoudt tijdens bewerkingen ongerelateerde eigenschappen
DTD-declaraties worden door de XML-lezer geweigerd, ongeacht de broncodering; invoer en gedecodeerde tekens zijn begrensd, en een streamingpas beperkt diepte en node-events vóór de DOM-constructie
Rendering gebruikt echte native bitmapopslag en Cairo image surfaces; bandgewijze rendering behoudt device-space-coördinaten en gebruikt guard-rijen om antialiasing op grenzen consistent te houden
Native familylettertype-insluiting zoekt een echt Fontconfig-bestand en sluit een compleet zelfstandig TrueType-programma in met CIDFontType2, Identity CIDToGIDMap, geïnitialiseerde metrics en Unicode-breedtes; BMP-tekst en portable OCR-lagen overleven PDF opslaan/opnieuw laden
De toegangspunt weigert niet-ingesloten familylettertypen, collecties, CFF-programma's en bitmap-only-insluitrechten; beperkte insluiting vereist de bestaande expliciete rechtenoverride, en lettertypen die subsetting verbieden blijven complete programma's
Limieten
- Windows-devicecontexts, EMF, GUI, klembord en afdrukken vallen buiten de native headless-backend
- Complexe native tekstvormgeving (text shaping) en Windows-systeemcertificaatopslag-identiteiten zijn niet beschikbaar
- Het toegangspunt voor standalone TrueType-insluiting ondersteunt momenteel BMP-tekst; tekst uit aanvullende Unicode-planes, TTC-face-extractie en CFF-insluiting vallen buiten dit toegangspunt
- Online OCSP/CRL-intrekking is niet beschikbaar; verzoeken om intrekkingsverificatie melden een onbekend resultaat
- De standaard native PFX-provider weigert RSA-PSS en extra policy-, commitment- of intrekkings-ondertekenattributen
- Native CMYK/ICC-transformaties en het wegschrijven van geïndexeerde 1-bit BMP's zijn niet beschikbaar
- HTTP vereist asynchrone DNS-ondersteuning in libcurl om DNS-lookup-time-outs te honoreren
Bouwen en verifiëren
python3 Tests/Native/run_native_tests.py --compiler /path/to/fpc --output /tmp/pdflib-native-tests
Geef --config /path/to/fpc.cfg mee voor een expliciete compilerconfiguratie; de runner verandert geen globale compilerinstellingen en voegt geen -FcUTF8 toe
De suite controleert de echte native uitvoerbare formaten en schrijft een JSON-rapport met compiler-/afhankelijkheidsversies, bronhashes, executable-hashes, resultaten en limieten
De meegeleverde Tests/Native-fixtures dekken PDF opslaan/opnieuw laden/rendering, tekstworkflows, versleuteling, metadata, handtekeningen, echte HTTP/TSA-verkeer en negatieve beveiligingsgevallen af