وثائق PDFiumPas

SaveAsPdfA الطريقة

يحافظ إدخال API هذا على المعرّفات والتواقيع وكتل الكود ومصطلحات PDF بصيغتها الأصلية.
المكون: TPdf  ·  الوحدة: PDFium
يحفظ المستند الحالي كملف متوافق مع PDF/A-1b عبر معالجة PDF الأساسي بتحديث تزايدي يحقن دفق بيانات XMP الوصفية وOutputIntent لملف ICC sRGB وcatalog محدّث

الصياغة

function SaveAsPdfA(const FileName: string; Conformance: TPdfAConformance = pac1b): Boolean; overload;
function SaveAsPdfA(const FileName: string; const Options: TPdfASaveOptions): Boolean; overload;

الوصف

ينفذ SaveAsPdfA عملية SaveAs العادية أولًا، ثم يضيف فوق البايتات المحفوظة تحديثًا تزايديًا يرتقي بالملف إلى أرشيف PDF/A (PDF/A-1b افتراضيًا، ISO 19005-1 مع Cor.1:2007). وتحقن المعالجة اللاحقة أربعة عناصر في الدفق المحفوظ

The output stays byte-identical to the base SaveAs result up to the end of the original PDF; only the incremental update is appended Existing readers that don't understand PDF/A still render the file exactly as the regular SaveAs would. The two overloads differ only in how the conformance / options are passed in — the TPdfAConformance form is shorthand for the common case (pac1b); the TPdfASaveOptions form takes a record with the full configuration surface, including optional overrides for Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate, DocumentId, and InstanceId. Fields left empty are auto-populated from FPDF_GetMetaText / FPDF_GetFileIdentifier, so the typical caller does not need to set any field other than Conformance.

The Conformance value selects the target standard and level. PDF/A-1 (ISO 19005-1) offers pac1b and pac1a; PDF/A-2 (ISO 19005-2) and PDF/A-3 (ISO 19005-3) add levels b, u and a as pac2b / pac2u / pac2a and pac3b / pac3u / pac3a. The injected pdfaid:part (1, 2 or 3) and pdfaid:conformance (A, B or U) follow the requested value, while the OutputIntent keeps the GTS_PDFA1 subtype that ISO 19005-2 retains for every part. Because the post-processor cannot synthesize logical structure, a Level A request (pac1a / pac2a / pac3a) is automatically downgraded to the matching Level B when the source lacks the tagged-PDF structure that level requires — so the saved file never makes a false Level A claim.

Returns True on success. Returns False if the base SaveAs failed, if the incremental update could not be attached (PDF too short, invalid trailer), or if the ICC profile data was provided but failed validation.

ملاحظات

مثال

// Simple PDF/A-1b output using the bundled sRGB profile
if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf') then
  ShowMessage('Saved PDF/A-1b');

// With a custom ICC profile
var
  Opts: TPdfASaveOptions;
begin
  Opts := Default(TPdfASaveOptions);
  Opts.Conformance := pac1b;
  Opts.IccProfileData := TFile.ReadAllBytes('C:\Profiles\Coated.icc');
  Pdf1.SaveAsPdfA('C:\Report.cmyk.pdfa.pdf', Opts);
end;

انظر أيضا

SaveAsPdfAToStream, ValidatePdfA, PdfAConformance, SaveAs