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 для переменных и транзакционных печатных данных — персонализированные письма, выписки, маркетинговые материалы — где страницы каждого получателя группируются через Document Part Hierarchy
PDF/VT-1 построен поверх PDF/X-4 (ISO 16612-2 §6.2.1 требует, чтобы каждый файл PDF/VT-1 также соответствовал PDF/X-4), поэтому инжектор пишет полный набор маркеров PDF/X-4 вместе со свойствами PDF/VT:
pdfxid:GTS_PDFXVersion = "PDF/X-4"), и идентификацию PDF/VT (pdfvtid:GTS_PDFVTVersion = "PDF/VT-1" с pdfvtid:GTS_PDFVTModDate, совпадающим с xmp:ModifyDate по §6.3 NOTE 1), плюс описание pdfaExtension:schemas для обоих пространств имён pdfxid и pdfvtid/GTS_PDFXVersion (PDF/X-4) и /Trapped. Существующие записи Info сохраняются/Metadata и /OutputIntents/Type /OutputIntent /S /GTS_PDFX и встроенным профилем ICC (по умолчанию sRGB; для производственной печати задайте CMYK через Options.IccProfileData)/DPartRoot и document-level иерархия /DPart, если в исходном документе ещё нет пригодной, где каждая страница связана через свою запись /DPart/ID в trailerОпции по умолчанию нацелены на PDF/VT-1 с комплектным sRGB
OutputIntent и /Trapped /False. Разница перегрузок
только в том, как передаётся конфигурация: форма только с именем файла
автозаполняет поля Info и DocumentId из
FPDF_GetMetaText / FPDF_GetFileIdentifier
При успехе возвращается True
/DPartRoot в каталоге с деревом узлов /DPart. Когда в исходном документе пригодной иерархии нет или она проваливает те же проверки дерева/порядка, что ValidatePdfVT, SaveAsPdfVT создаёт один document-level DPart, покрывающий текущий порядок дерева страниц. Процессам, которым нужны метаданные получателя, продукта или почтового отправления, следует построить более богатое дерево DPart/DPM до сохранения или дополнить сгенерированное послеTPdfVTSaveOptions.Conformance = pvc2 принимается для совместимости, но однок файловый райтер нормализует вывод к PDF/VT-1. PDF/VT-2 — профиль file-set, чьи валидные базы PDF/X — это PDF/X-4p, PDF/X-5g или PDF/X-5pg, поэтому этот метод с одним выходным файлом его произвести не можетOptions.IccProfileData вместе с соответствующими 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;