PDFium Component Docs

SaveAsPdfAToStream الطريقة

Component: TPdf  ·  Unit: PDFium
نسخة في الذاكرة من SaveAsPdfA — تكتب إخراج PDF/A-1b في أي TStream دون المرور عبر القرص

Syntax

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

Description

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

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

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

Remarks

Example

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;

See Also

SaveAsPdfA, ValidatePdfA, PdfAConformance, SaveAs