ネイティブ Linux と macOS

ネイティブ FPC バックエンドは、Linux x64 と macOS ARM64 でのヘッドレスなライブラリワークフローをサポートし、実際の ELF と Mach-O プログラムを生成します

PDF の作成、保存・読み込み、テキスト抽出と編集、構造化抽出、移植性のある OCR コールバック、ビットマップ描画、メタデータ、暗号化、ネットワークレンジアクセス、ネイティブ PFX 署名には、既存の TPDFlib API をそのまま使えます

実行時の依存ライブラリ

プロバイダーライブラリ用途
OpenSSL 3libcryptoAES CBC/GCM、ダイジェスト、PKCS12 アイデンティティ、CMS 署名、完全性、明示的なトラストアンカーチェーン
libcurl非同期 DNS 対応の libcurlHTTP/HTTPS、上限付きバイナリ転送、レンジアクセス、RFC 3161 リクエスト
Cairolibcairoビットマップイメージサーフェス、パス、クリッピング、グリフアウトライン、画像
Fontconfiglibfontconfig実際のネイティブフォントファイルのマッチング (明示的なファミリー代替を含む)
OpenJPEG 2libopenjp2JPEG 2000 のデコードとエンコード

Linux は対応するシステム SONAME を読み込みます。macOS は /opt/homebrew 配下の ARM64 ライブラリとシステムの libcurl を使います

ライブラリやシンボルの欠落、サポートされない操作は明示的な失敗になります。Windows のデバイスコンテキスト代替は使いません

署名とタイムスタンプ

既定の PFX プロバイダーは、実際の RSA と EC アイデンティティ、detached CMS、CAdES、旧式の attached SHA1 プロファイルに対応します。検証は PDF の ByteRange バイトと CMS 署名を確認します

証明書チェーンの検証には明示的なトラストアンカーが必要です。埋め込み証明書は信頼を与えず、完全性だけでは信頼を意味しません

ApplyPAdESSignatureTimeStamp は、構成された既定のネイティブ HTTP トランスポートを使って実際の RFC 3161 トークンを取得して添付します。元の署名の前に十分な /Contents 容量を確保してください

タイムスタンプの検証は、署名されたトークン、メッセージインプリント、排他的な critical な timeStamping EKU、TSA 名、必要に応じた期待ポリシー/ノンス、トークン生成時点での信頼された証明書チェーンを確認します

ドキュメントタイムスタンプは、実際の PDF ByteRange インプリントも検証します。呼び出し側は既存の DocTimeStamp パススルーワークフローを使ってトークンを供給できます

メタデータと描画

XMP は実際の名前空間対応 DOM を使い、編集中も無関係なプロパティを保持します

DTD 宣言は、ソースエンコーディングに関係なく XML リーダーに拒否されます。入力文字とデコード後の文字には上限があり、DOM 構築の前にストリーミングパスで深さとノードイベントが制限されます

描画は実際のネイティブビットマップストレージと Cairo イメージサーフェスを使います。バンド描画はデバイス空間の座標を保持し、ガード行で境界のアンチエイリアシングの一貫性を保ちます

ネイティブのファミリーフォント埋め込みは実際の Fontconfig ファイルを解決し、CIDFontType2、Identity の CIDToGIDMap、初期化済みメトリクス、Unicode の幅を持つ完全なスタンドアロン TrueType プログラムを埋め込みます。BMP テキストと移植性のある OCR レイヤーは、PDF の保存と再読み込みをまたいで生き残ります

このエントリは、埋め込みされていないファミリーフォント、コレクション、CFF プログラム、ビットマップ限定の埋め込み権限を拒否します。制限付き埋め込みには既存の明示的な権限オーバーライドが必要で、サブセット化を禁じるフォントは完全なプログラムのままになります

制限

ビルドと検証

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

明示的なコンパイラ構成には --config /path/to/fpc.cfg を渡します。ランナーはグローバルなコンパイラ設定を変更せず、-FcUTF8 も追加しません

スイートは実際のネイティブ実行ファイル形式を検査し、コンパイラと依存ライブラリのバージョン、ソースハッシュ、実行ファイルハッシュ、結果、制限を含む JSON レポートを書き出します

リポジトリに同梱の Tests/Native フィクスチャは、PDF の保存・再読み込み・描画、テキストワークフロー、暗号化、メタデータ、署名、実際の HTTP/TSA トラフィック、ネガティブなセキュリティケースをカバーします

リファレンスインデックス