PDFium Delphi Component Docs

SaveAsPdfAToStream метод

Component: TPdf  ·  Unit: PDFium
Пам'ятковий варіант — записує вихід у будь-який 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 (який переносить Document Information Dictionary у форму 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