ネイティブページインポートと保持 PDF/A-4
選択されたページを、元のテキストとベクターのコンテンツストリーム、継承された MediaBox/CropBox/Rotate、明示的な UserUnit、埋め込みフォント、画像、共有リソース、循環する間接識別子とともに追記します
AppendImportedPages は 2 つの別個のロード済みドキュメントに対して動作し、出力先リビジョンと暗号化を保持し、ページツリーのコミット前にすべてのインポートオブジェクトをステージングします。重複選択、無効な参照、キャンセル、権限、バイト/オブジェクト/ページの各予算では出力先は変更されません
選択されたソース注釈は、normal アピアランス状態、BBox、Matrix を使った通常の Form XObject コンテンツになります。ソースのインタラクションとフィールドはインポートされず、隠し注釈は削除され、flattenAnnotations=false はすべてのソース注釈を明示的に取り除きます
可視注釈には使用可能な normal アピアランスが必要です。NoZoom/NoRotate のジオメトリには別の編集ポリシーが、署名済み・証明済みの出力先ドキュメントには別の署名ドキュメントポリシーが必要です
ソースのユーザーパスワードはテキスト抽出を許可し、出力先のユーザーパスワードは内容変更を許可しなければなりません。オーナー認証はこれらの権限制限を迂回します
検証済みの保持
HPDFConvertHeadlessToPDFA4PreservingFile は、実際の sRGB 出力インテントと PDF/A-4 XMP を持つ独立した PDF 2.0 ドキュメントを作成し、元のコンテンツとフラット化アピアランスをインポートし、ステージングされた候補を正規の veraPDF CLI で検証し、適合する出力だけをアトミックに公開します
変換は、到達可能なページコンテンツ/リソースを保持しながら、元の暗号化、インタラクティブフィールド、署名、カタログアクション、ドキュメントメタデータ、カタログ添付を取り除きます。ソースが署名済みフィールドを含む場合、allowSignatureInvalidation は明示的でなければなりません
既定の経路は元のフォントプログラムを保持します。明示的なフォント修復は、欠落フォントに対する利用可能な代替の上限付き正規化と埋め込みを追加し、最終候補はすべて、出力先を置き換える前に真の PDF/A-4 検証を依然必要とします
バリデーター設定
ヘッドレス Java と公式 veraPDF CLI JAR をインストールし、HOTPDF_VERAPDF_JAR を設定するか Pascal で ValidatorJAR を設定してください。既定のパスは /usr/bin/java と /opt/hotpdf-verapdf/cli.jar です
検証は別プロセスの引数、ヘッドレス Java、設定されたヒープ上限、上限付き stdout/stderr、時間予算、キャンセルを使います。タイムアウトとキャンセルは子プロセスを終了・回収し、プライベートなステージングファイルを削除します
管理された準備上限と Java ヒープ上限は、OS の RSS キャップを表しません
コールバック操作
{"schemaVersion":1,"type":"pages.import","pages":[2,0,1],"sourcePassword":"source-owner","flattenAnnotations":true}
{"schemaVersion":1,"type":"pdfa.convert","profile":"PDF/A-4","mode":"preserve"}
pages.import にはロード済みの出力先ハンドルと別のソース InputIO が必要です。出力先の認証はハンドルに委ねられ、sourcePassword はインポートされる入力にだけ適用されます
pdfa.convert の既定は raster です。preserve はテキスト/ベクターコンテンツを保持し、出力コールバックの前に veraPDF を呼び出し、その後、出力と result の公開が成功した後にのみハンドルを検証済み非暗号化ドキュメントに置き換えます
受け入れ
ネイティブ Linux の FPC 3.2.2 と 3.3.1 は、元のストリーム/フォント/CMap バイト、継承されたリソース、回転、AES のソース/出力先リビジョン、変換されたアピアランス、循環リソース、再ロード動作、ロールバック、実際の PDF/A-4 検証、上限付き子プロセス寿命を検証します。Windows の FPC と Delphi はページインポートを試験し、両方の C++Builder アーキテクチャが公開ヘッダーをコンパイルします
sh Tests/Linux/Run-HeadlessPageImportAcceptance.sh
sh Tests/Linux/Run-LinuxABIAcceptance.sh