function SaveAsPdfVT(const FileName: string): Boolean; overload;
function SaveAsPdfVT(const FileName: string; const Options: TPdfVTSaveOptions): Boolean; overload;
SaveAsPdfVT führt zuerst das normale SaveAs aus und legt dann auf die gespeicherten Bytes ein inkrementelles Update, das die Datei zu einer einzelnen PDF/VT-1-konformen Datei macht. PDF/VT ist der ISO-16612-2-PDF-Teilbereich für variablen Datendruck und Transaktionsdruck — personalisierte Post, Abrechnungen, Marketingmaterial — bei dem die Seiten jedes Empfängers über eine Document Part Hierarchy gruppiert werden
PDF/VT-1 basiert auf PDF/X-4 (ISO 16612-2 §6.2.1 verlangt, dass jede PDF/VT-1-Datei auch PDF/X-4 erfüllt), daher schreibt der Injector den vollständigen PDF/X-4-Markierungsumfang zusammen mit den PDF/VT-spezifischen Eigenschaften
pdfxid:GTS_PDFXVersion = "PDF/X-4") als auch die PDF/VT-Kennzeichnung (pdfvtid:GTS_PDFVTVersion = "PDF/VT-1" mit pdfvtid:GTS_PDFVTModDate, das gemäß §6.3 NOTE 1 zu xmp:ModifyDate passt) deklariert, plus eine pdfaExtension:schemas-Beschreibung für die pdfxid- und pdfvtid-Namespaces/GTS_PDFXVersion (PDF/X-4) und /Trapped. Vorhandene Info-Einträge bleiben erhalten/Metadata- und /OutputIntents-Referenzen/Type /OutputIntent /S /GTS_PDFX und einem eingebetteten ICC-Profil (standardmäßig sRGB; für den Produktionsdruck CMYK über Options.IccProfileData bereitstellen)/DPartRoot- und Dokumentebene-/DPart-Hierarchie, wenn das Quelldokument noch keine nutzbare enthält, wobei jede Seite über ihren /DPart-Eintrag verknüpft wird/ID-Array im TrailerDie Standardoptionen zielen auf PDF/VT-1 mit dem mitgelieferten
sRGB-OutputIntent und /Trapped /False. Die beiden
Überladungen unterscheiden sich nur darin, wie die Konfiguration
übergeben wird: Die Variante nur mit Dateinamen füllt die Info-
Felder und die DocumentId automatisch aus
FPDF_GetMetaText / FPDF_GetFileIdentifier
auf
Gibt bei Erfolg True zurück
/DPartRoot-Wörterbuch mit einem Baum aus /DPart-Knoten. Fehlt dem Quelldokument eine nutzbare Hierarchie oder fällt die Hierarchie bei denselben Baum- / Ordnungsprüfungen wie ValidatePdfVT durch, erzeugt SaveAsPdfVT einen dokumentweiten DPart, der die aktuelle Seitenreihenfolge abdeckt. Workflows, die Empfänger-, Produkt- oder Mail-Piece-Metadaten benötigen, sollten vor dem Speichern einen reicheren DPart/DPM-Baum anlegen oder den erzeugten danach erweiternTPdfVTSaveOptions.Conformance = pvc2 wird aus Kompatibilitätsgründen akzeptiert, aber der Writer für eine einzelne Datei normalisiert die Ausgabe auf PDF/VT-1. PDF/VT-2 ist ein File-Set-Profil, dessen gültige PDF/X-Basen PDF/X-4p, PDF/X-5g oder PDF/X-5pg sind, daher kann es von dieser Methode für eine Ausgabedatei nicht erzeugt werdenSaveAsPdfVT fügt die PDF/X-4- + PDF/VT-Dateiformatmarker hinzu, erzwingt aber keine Inhaltsregeln auf PDF/X-4-Ebene (Schrifteinbettung, Transparenz, ICC-verwaltete Farben, Verbote für OPI / JavaScript / Reference XObject). Kombinieren Sie ValidatePdfVT mit einem PDF/X-Preflight-Tool für vollständige KonformitätOptions.IccProfileData ein CMYK-ICC-Profil (FOGRA39 / GRACoL2006_Coated1v2 / usw.) zusammen mit passenden OutputCondition / OutputConditionIdentifier / RegistryName bereit
// 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;