Linux ポータブルコア
ポータブルコアは、既存のオブジェクトモデル、simple-object パーサー、Direct File I/O ヘルパー、コンテンツストリームインタープリター、PDF 値ヘルパー、xref と trailer のライター、Flate バックエンド、AES プリミティブを、Free Pascal でネイティブ Linux プログラムへコンパイルします
HPDFPlatform は実際の POSIX マップドファイルと位置指定読み取り、一時ファイル作成、ワーカー同期、OS のランダムバイトを提供します。Windows アダプターは既存のネイティブファイルとマッピングの挙動を保ちます
受け入れ範囲
Tests/Linux/Run-PortableCoreTests.sh はネイティブ x86_64 ELF コンソール実行ファイルをビルドし、デスクトップ表示変数を消去し、GUI ライブラリ依存をチェックし、8 グループの回帰をタイムアウト付きで実行します
チェックの対象は、パーサーのエスケープと間接参照、不変 PDF 値とストリームフィルター、4 GiB を超えるマップウィンドウとスパースファイルオフセット、圧縮された非同期スピルストリーム、Flate と AES の既知解、MD5 ファイルハッシュ、OS 生成のランダム IV、有効なクラシック xref シリアライズ、Direct File のページ数とオブジェクト検索、コンテンツストリームのテキストとグリフ位置です
生成される 1 ページのフィクスチャは既存のライターで書かれ、共有 Direct File ヘルパーを通じて独立に読み戻されます。コンテンツチェックは、既存の Latin-1 identity リゾルバーと、エンコーディング差分と明示的 widths を持つページフォントリゾルバーの両方を使います
フォントデータとテキストデコード
HPDFFontData は、既存のグリフ名、エンコーディング、sfnt CMap デコードを GDI から分離します。Windows の埋め込みグリフレンダリングと既存の HPDFTextExtraction デコーダーは同じ実装を使います
THPDFTrueTypeData は、単一フォントの sfnt イメージに対して、対応済みの CMap 検索、逆引きのグリフ→Unicode マッピング、hmtx 水平アドバンスを公開します
HPDFBaseFontMetrics は Windows GDI プロバイダーを保持し、明示的 widths を省く標準フォントについては Linux ではインストール済み TrueType フォントによる Fontconfig を使います。置換結果はインストールされたフォントと Fontconfig ルールに依存します
プラットフォームとフォントヘルパーの契約
THPDFPlatformHandle は符号付きネイティブ幅ハンドルで、HPDFInvalidFileHandle は -1 です。HPDFOpenReadOnlyFile と HPDFCloseFile は読み取りハンドルを管理し、HPDFFileSize と HPDFReadFileAt は Int64 位置を使うため、呼び出し側は短い読み取りに対処しなければなりません
HPDFMappingGranularity は必要なオフセット整列を供給します。HPDFCreateReadOnlyMapping は失敗時にゼロを返し、HPDFMapReadOnly は要求範囲をマップし、HPDFUnmapReadOnly / HPDFCloseMapping はビューとマッピングを解放します
HPDFCreateTemporaryFile は、パスと後片付けが呼び出し側に属するファイルを排他的に作成します。HPDFInitializeLock / HPDFDeleteLock はネイティブのクリティカルセクションを管理します
THPDFPlatformEvent は TEvent の別名です。HPDFCreateEvent、HPDFWaitEvent、HPDFSignalEvent、HPDFResetEvent が同期を管理し、ワーカー停止後に呼び出し側がイベントを解放します
HPDFSecureRandomBytes は要求バッファを OS から満たすか、例外を送出します
HPDFGlyphNameToUnicode、HPDFUnicodeToGlyphName、HPDFStdEncGlyphName、HPDFMacExpertEncGlyphName、HPDFBaseEncToUnicode は既存の名前とエンコーディングの挙動を保ちます。HPDFBaseFontFamilyToken はサブセットとスタイル接尾辞を取り除き、HPDFIsStandardTextFont は Helvetica、Times、Courier の別名を認識します
HPDFMeasureBaseFontWidths は Windows GDI プロバイダーまたは Linux Fontconfig と、共有 sfnt 水平メトリクスを使います。THPDFTrueTypeData と THPDFUnicodeByGID が共有フォントデータ API を提供します
共有 Direct File 型
HPDFDirectFileTypes は、既存の THPDFKeyType、THPDFProtection、THPDFProtectOptions、THPDFDirectXrefEntry、THPDFDirectObjectSource、THPDFDirectFileState の各定義を所有します
この分離により、HPDFDirectFileIO はコンポーネントと GUI 実装を import せずに、同じレコードと権限型を使えます
HPDFDoc は元の名前のまま別名と列挙値定数を保持します。列挙序数とレコードレイアウトは変更されません
Linux プログラムの初期化
ネイティブ Free Pascal プログラムは、ワーカースレッドを使う前に uses リストの先頭に cthreads を置かなければなりません。ポータブルコアのテストは Unicode 変換マネージャーを供給するため cwstring もロードします
FCL と paszlib ユニット、C ランタイム、インストール済み TrueType フォントを備えた Fontconfig、file、ldd、timeout の各ツールを備えた FPC 3.3.1 以降を使います。FPC_EXE と HPDF_LINUX_OUTPUT がコンパイラーと隔離出力ディレクトリを選択します
サポート対象の最小 FPC バージョンは、すべてのプラットフォームで 3.3.1 です。新しい受け入れでは実際のコンパイラービルドとソース構成を記録し、古いコンパイラーでの結果は歴史的エビデンスとして残します
ネイティブドキュメント統合
ネイティブヘッドレスドキュメント APIは、クラシック、xref ストリーム、ハイブリッド、圧縮オブジェクトの各グラフを読み込み、ページと Form のリソースを解決し、Unicode テキストを抽出し、対応済みの AcroForm フィールドを編集し、ページをインポートし、ソースバイトを保持したままインクリメンタルリビジョンを公開します
バージョン管理された Linux C ABIは、これらのネイティブ操作に対して実際の ELF ドキュメントハンドルと同期 C コールバックを公開します。THotPDF は別個の Windows コンポーネント統合のままです
ネイティブドキュメントワークフローは、HTML インポート、可視・不可視のページテキスト、実際の Tesseract OCR、ラスター PDF/A-4 変換を提供します。ページインポートと検証済みテキスト/ベクター アーカイブ変換は元のリソースを保持し、明示的なアーカイブフォント修復が有界な代替フォント埋め込みを追加します
プラットフォームアダプターの契約、Direct File 型の所有、回帰境界、ネイティブワークフローとデプロイのエビデンスへのリンクについては Tests/Linux/Readme.en-us.md を参照してください
ヘッドレスドキュメントは、THPDFHeadlessAES256Security の定義する有界な Standard AES-256 R5/R6 プロファイルを受け付けるようになりました。オーナー/ユーザー権限、圧縮オブジェクト、暗号化されたインクリメンタルフォーム保存を含みます
ランタイム依存、対応コンテンツ、予算、権限、ソース構成、出力契約については ネイティブ Cairo レンダリングと アトミックなネイティブ署名公開を参照してください
Unicode フォーム外観は、複数行テキスト、comb セル、回転、パスワードマスク、省略可能な HarfBuzz/FriBidi シェーピングに対応します。選択フィールドとボタンフィールド、供給フォントファミリー、型付きリッチテキストは別個のネイティブ API が扱い、暗号化されたリビジョンを保持します
ネイティブ署名ワークフローには、PEM/PFX アイデンティティ、新しい署名フィールド、可視外観、証明が含まれます。明示的なタイムスタンプ転送、トラスト、検証済み失効エビデンスは、文書化された暗号と公開の要件をそのまま保ちます
残る機能の境界
ヘッドレスドキュメントのセキュリティプロファイルが対応するのは Standard AES-256 R5/R6 です。それ以外のセキュリティハンドラーは、ポータブルコアアダプターを通じて対応になるのではなく、このプロファイルの対象外のままです
より広い注釈レンダリング、一般的なリッチテキスト CSS/レイアウト、完全な FDF アクションとリソースグラフ、一般的な動的 XFA 互換は、機能完了計画で引き続き着手予定です。上記の実装済みネイティブ統合は、その残りの作業とは独立に利用できます