وثائق PDFiumPas

SaveAsPdfAToStream الطريقة

يحافظ إدخال API هذا على المعرّفات والتواقيع وكتل الكود ومصطلحات PDF بصيغتها الأصلية.
المكون: TPdf  ·  الوحدة: PDFium
In-memory variant of SaveAsPdfA — writes the PDF/A-1b output into any TStream without staging through disk.

الصياغة

function SaveAsPdfAToStream(Stream: TStream; const Options: TPdfASaveOptions): Boolean;

الوصف

SaveAsPdfAToStream هو النظير المتدفق لـ SaveAsPdfA — ويُنتج نفس مخرجات PDF/A-1b، لكنه يكتب النتيجة في أي TStream يدعم التمركز يوفّره المستدعي بدلًا من المرور عبر ملف مؤقت. هذا مفيد لمسارات رفع HTTP، وأعمدة BLOB، وطبقات التخزين المؤقت في الذاكرة، وحاويات الأرشفة (ZIP / TAR)، أو أي سير عمل لا يحتاج فيه محتوى PDF/A إلى لمس القرص

منطق المعالجة اللاحقة مطابق لـ SaveAsPdfA(FileName, Options): يبدأ SaveAs الأساسي أولًا، ثم يضيف تحديث تزايدي دفق بيانات XMP metadata الذي يربط Document Information Dictionary بصيغة XMP وفق ISO 19005-1 6.7.3 / Cor.1 Table 1 ويضم وصف مخطط الامتداد pdfaid المطلوب بواسطة 6.7.8، وOutputIntent يشير إلى ICC profile مضمن، وتهيئة sRGB افتراضيًا مع إمكان التخصيص عبر Options.IccProfileData، وتحديث catalog يربطها معًا، ومصفوفة trailer /ID المطلوبة بواسطة 6.1.3 تُملأ الحقول الفارغة في Options تلقائيًا من FPDF_GetMetaText وFPDF_GetFileIdentifier لذا يكتفي المستدعي المعتاد بضبط Conformance

تُعيد True عند النجاح. يبقى موضع دفق الإخراج عند الموضع التالي لآخر بايت مكتوب. وتُعيد False إذا فشل SaveAs الأساسي أو إذا تعذر إرفاق المعالجة اللاحقة الخاصة بـ PDF/A عادةً لأن ملف PDF المصدر كان مشفرًا، وهو ما يحرمه PDF/A

ملاحظات

مثال

var
  Stream: TMemoryStream;
  Opts: TPdfASaveOptions;
begin
  Stream := TMemoryStream.Create;
  try
    Opts := Default(TPdfASaveOptions);
    Opts.Conformance := pac1b;
    if Pdf1.SaveAsPdfAToStream(Stream, Opts) then
    begin
      Stream.Position := 0;
      UploadToArchive(Stream);
    end;
  finally
    Stream.Free;
  end;
end;

انظر أيضا

SaveAsPdfA, ValidatePdfA, PdfAConformance, SaveAs