function SaveAsPdfVT(const FileName: string): Boolean; overload;
function SaveAsPdfVT(const FileName: string; const Options: TPdfVTSaveOptions): Boolean; overload;
SaveAsPdfVT はまず通常の SaveAs を実行し、その保存バイトの上に増分更新を重ねて、ファイルを単一ファイルの PDF/VT-1 準拠へ昇格させます。PDF/VT は可変データ・トランザクション印刷向けに設計された ISO 16612-2 の PDF サブセットで、パーソナライズされたメール、明細書、マーケティング素材など、受取人ごとのページを Document Part Hierarchy でグループ化する世界です
PDF/VT-1 は PDF/X-4 の上に成り立っています(ISO 16612-2 §6.2.1 は全 PDF/VT-1 ファイルに PDF/X-4 への適合を要求する)ため、注入器は PDF/VT 固有のプロパティと並べて完全な PDF/X-4 マーカー集合を書き込みます:
pdfxid:GTS_PDFXVersion = "PDF/X-4")と PDF/VT 識別(pdfvtid:GTS_PDFVTVersion = "PDF/VT-1"、§6.3 NOTE 1 に従い pdfvtid:GTS_PDFVTModDate は xmp:ModifyDate に一致)の両方を宣言する XMP メタデータ stream。pdfxid と pdfvtid の両名前空間の pdfaExtension:schemas 記述も含みます/GTS_PDFXVersion (PDF/X-4) と /Trapped を加えて書き直された Document Information Dictionary。既存の Info entry は保持されます/Metadata と /OutputIntents 参照を持つ、更新済みカタログ/Type /OutputIntent /S /GTS_PDFX と埋め込み ICC プロファイルを持つ OutputIntent 辞書(デフォルトは sRGB。商業印刷では Options.IccProfileData で CMYK を渡します)/DPartRoot とドキュメントレベルの /DPart 階層。各ページは /DPart entry 経由でリンクされます/ID 配列デフォルトのオプションは、同梱 sRGB の OutputIntent と /Trapped /False で PDF/VT-1 を狙います。2 つのオーバーロードの違いは設定の渡し方だけで、ファイル名だけの形式は Info フィールドと DocumentId を FPDF_GetMetaText / FPDF_GetFileIdentifier から自動補完します
成功時は True を返します
/DPartRoot 辞書と /DPart ノードのツリーを定義します。ソースドキュメントが使用可能な階層を持たない場合や、階層が ValidatePdfVT と同じツリー / 順序チェックに落ちる場合、SaveAsPdfVT は現在のページツリー順をカバーする 1 つのドキュメントレベル DPart を作ります。受取人・製品・郵便物単位のメタデータが要るワークフローは、保存前にリッチな DPart/DPM ツリーを用意するか、生成後に拡張してくださいTPdfVTSaveOptions.Conformance = pvc2 は互換性のため受け付けますが、単一ファイルライターは出力を PDF/VT-1 へ正規化します。PDF/VT-2 はファイルセットのプロファイルで、有効な PDF/X ベースが PDF/X-4p、PDF/X-5g、PDF/X-5pg に限られるため、この単一出力ファイルのメソッドでは作れませんOptions.IccProfileData で CMYK の ICC プロファイル(FOGRA39 / GRACoL2006_Coated1v2 など)を、対応する OutputCondition / OutputConditionIdentifier / RegistryName と一緒に渡してください
// Simple PDF/VT-1 with bundled sRGB OutputIntent
if Pdf1.SaveAsPdfVT('C:\Statements.pdfvt.pdf') then
ShowMessage('Saved PDF/VT-1');
// PDF/VT-1 with a CMYK ICC profile for commercial print
var
Opts: TPdfVTSaveOptions;
begin
Opts := TPdfVTSaveOptions.Default;
Opts.IccProfileData := TFile.ReadAllBytes('C:\ICC\FOGRA39.icc');
Opts.OutputCondition := 'Coated FOGRA39 (ISO 12647-2:2004)';
Opts.OutputConditionIdentifier:= 'FOGRA39';
Pdf1.SaveAsPdfVT('C:\BillingRun.pdfvt.pdf', Opts);
end;