PDFium Delphi Component Docs

SaveAsPdfXToStream Метод

Компонент: TPdf  ·  Модуль: PDFium
Записывает кандидат PDF/X в перемещаемый поток, принадлежащий вызывающему, по тем же правилам профилей, что и SaveAsPdfX

Syntax

function SaveAsPdfXToStream(Stream: TStream; const Options: TPdfXSaveOptions): Boolean;

Description

SaveAsPdfXToStream — потоковый аналог SaveAsPdfX — те же выходные байты, записанные в любой поддерживающий позиционирование TStream, предоставленный вызывающим. Полезно для интеграции допечатных рабочих процессов, где полезные данные PDF/X передаются напрямую в порталы подачи печати, системы MIS / учёта заданий, столбцы BLOB, контейнеры ZIP или конвейеры загрузки по HTTP

Постобработка идентична SaveAsPdfX: внедрение XMP с идентификатором pdfxid и описанием схемы расширения, перезапись Information-словаря документа с GTS_PDFXVersion / GTS_PDFXConformance / Trapped, обновление каталога со ссылками /Metadata и /OutputIntents, словарь OutputIntent с /S /GTS_PDFX и встроенным профилем ICC и массив /ID трейлера. Пустые поля Options автоматически заполняются из FPDF_GetMetaText / FPDF_GetFileIdentifier

Возвращает True после сериализации, оставляя выходной поток в позиции после последнего записанного байта False возвращается для неактивного документа или провалившегося базового сохранения; успешный возврат не является вердиктом о полном соответствии PDF/X

Для pxc1a задайте в Options.IccProfileData структурно корректный выходной профиль ICC v2 с классом prtr, данными CMYK, PCS Lab или XYZ и требуемыми двунаправленными LUT Отсутствующие или непригодные данные дают EArgumentException до того, как целевой поток будет изменён

Для PDF/X-1a метки output-condition, всё ещё равные встроенному значению sRGB по умолчанию, заменяются описанием проверенного профиля ICC Если этого описания нет, обязателен явный непустой, нестандартный OutputConditionIdentifier, который даёт замещающую метку Явно заданные метки сохраняются; затронутые поля перечислены в SaveAsPdfX

Remarks

Example

var
  Stream: TMemoryStream;
  Opts: TPdfXSaveOptions;
begin
  Stream := TMemoryStream.Create;
  try
    Opts := TPdfXSaveOptions.Default;
    Opts.Conformance := pxc4;
    Opts.Title := 'Spring Catalogue 2026';
    if Pdf1.SaveAsPdfXToStream(Stream, Opts) then
    begin
      Stream.Position := 0;
      SubmitToPrinter(Stream);
    end;
  finally
    Stream.Free;
  end;
end;

See Also

SaveAsPdfX, ValidatePdfX, PdfXConformance, SaveAs