Yerel Linux ve macOS
Yerel FPC arka ucu, Linux x64 ve macOS ARM64'te başsız kitaplık iş akışlarını destekler ve gerçek ELF ile Mach-O programları üretir
PDF oluşturma, kaydetme/yükleme, metin ayıklama ve düzenleme, yapılandırılmış ayıklama, taşınabilir OCR geri çağrıları, bitmap oluşturma, meta veri, şifreleme, ağ aralık erişimi ve yerel PFX imzalama için mevcut TPDFlib API'sini kullanın
Çalışma zamanı bağımlılıkları
| Sağlayıcı | Kitaplık | Amaç |
|---|---|---|
| OpenSSL 3 | libcrypto | AES CBC/GCM, özetler, PKCS12 kimlikleri, CMS imzaları, bütünlük ve açık güven çipası zincirleri |
| libcurl | asenkron DNS destekli libcurl | HTTP/HTTPS, sınırlı ikili aktarım, aralık erişimi ve RFC 3161 istekleri |
| Cairo | libcairo | Bitmap görüntü yüzeyleri, yollar, kırpma, glif ana hatları ve görüntüler |
| Fontconfig | libfontconfig | Açık aile ikamesi dahil, gerçek yerel yazı tipi dosyası eşleştirmesi |
| OpenJPEG 2 | libopenjp2 | JPEG 2000 kod çözme ve kodlama |
Linux ilgili sistem SONAME'lerini yükler; macOS, /opt/homebrew altındaki ARM64 kitaplıklarını ve sistem libcurl'ünü kullanır
Eksik kitaplıklar, semboller veya desteklenmeyen işlemler açık hatalarla sonuçlanır; Windows aygıt bağlamı yerine koyması kullanılmaz
İmzalama ve zaman damgaları
Varsayılan PFX sağlayıcısı, gerçek RSA ve EC kimliklerini, ayrık CMS'yi, CAdES'i ve eski ekli SHA1 profillerini destekler; doğrulama, PDF ByteRange baytlarını ve CMS imzasını denetler
Sertifika zinciri doğrulaması açık güven çıpaları gerektirir; gömülü sertifikalar güven vermez ve yalnızca bütünlük, güven anlamına gelmez
ApplyPAdESSignatureTimeStamp, gerçek bir RFC 3161 belirtecini getirmek ve eklemek için yapılandırılmış varsayılan yerel HTTP aktarımını kullanır; özgün imzadan önce yeterli /Contents kapasitesi ayırın
Zaman damgası doğrulaması; imzalı belirteci, ileti parmak izini, yalnızca timeStamping taşıyan kritik EKU'yu, TSA adını, isteğe bağlı beklenen politika/nonce'i ve belirteç üretim anındaki güvenilir sertifika zincirini denetler
Belge zaman damgaları ayrıca gerçek PDF ByteRange parmak izini doğrular; çağıran, mevcut DocTimeStamp geçiş iş akışını kullanıp belirteci kendisi sağlayabilir
Meta veri ve oluşturma
XMP, ad alanı duyarlı gerçek bir DOM kullanır ve düzenlemeler sırasında ilgisiz özellikleri korur
DTD bildirimleri, kaynak kodlamadan bağımsız olarak XML okuyucusu tarafından reddedilir; girdi ve kodu çözülen karakterler sınırlanır ve DOM kurulmadan önce bir akış geçişi, derinliği ve düğüm olaylarını sınırlar
Oluşturma, gerçek yerel bitmap depolaması ve Cairo görüntü yüzeyleri kullanır; bantlı oluşturma, aygıt uzayı koordinatlarını korur ve sınır kenar yumuşatmasını tutarlı tutmak için koruma satırları kullanır
Yerel aile yazı tipi gömmesi, gerçek bir Fontconfig dosyasını çözer ve CIDFontType2, Identity CIDToGIDMap, ilklendirilmiş metrikler ile Unicode genişliklerini taşıyan eksiksiz, kendi başına bir TrueType programı gömer; BMP metni ve taşınabilir OCR katmanları PDF kaydet/yükle döngüsünden sağ çıkar
Girdi, gömülmemiş aile yazı tiplerini, koleksiyonları, CFF programlarını ve yalnızca bitmap gömme haklarını reddeder; kısıtlı gömme, mevcut açık haklara geçersiz kılmayı gerektirir ve alt küme almayı yasaklayan yazı tipleri eksiksiz program olarak kalır
Sınırlar
- Windows aygıt bağlamları, EMF, GUI, pano ve yazdırma, yerel başsız arka ucun kapsamı dışındadır
- Karmaşık yerel metin şekillendirme ve Windows sistem sertifika deposu kimlikleri kullanılamaz
- Bağımsız TrueType gömme girdisi şu anda BMP metnini destekler; ek düzlem metni, TTC yüz ayıklama ve CFF gömmesi bu girdinin kapsamı dışındadır
- Çevrimiçi OCSP/CRL iptali kullanılamaz; iptal doğrulaması istekleri bilinmeyen bir sonuç bildirir
- Varsayılan yerel PFX sağlayıcısı, RSA-PSS'yi ve ek politika, taahhüt ya da iptal imzalama özniteliklerini reddeder
- Yerel CMYK/ICC dönüşümleri ve dizinli tek bit BMP yazımı kullanılamaz
- HTTP, DNS arama zaman aşımlarına uymak için libcurl'de asenkron DNS desteği gerektirir
Derleme ve doğrulama
python3 Tests/Native/run_native_tests.py --compiler /path/to/fpc --output /tmp/pdflib-native-tests
Açık bir derleyici yapılandırması için --config /path/to/fpc.cfg geçirin; çalıştırıcı, genel derleyici ayarlarını değiştirmez veya -FcUTF8 eklemez
Takım, gerçek yerel çalıştırılabilir biçimlerini denetler ve derleyici/bağımlılık sürümlerini, kaynak hash'lerini, çalıştırılabilir hash'lerini, sonuçları ve sınırları içeren bir JSON raporu yazar
Sürüm içine alınmış Tests/Native sabitleri; PDF kaydetme/yükleme/oluşturma, metin iş akışları, şifreleme, meta veri, imzalar, gerçek HTTP/TSA trafiği ve olumsuz güvenlik durumlarını kapsar