HPDFXFAWriteHeadlessPDF

Модуль: HPDFXFAHeadless

function HPDFXFAWriteHeadlessPDF(Destination: TStream;
  const XDPBytes, TrueTypeFont: SysUtils.TBytes;
  const Options: TXFAHeadlessPDFOptions;
  Warnings: TStringList): TXFAHeadlessPDFResult;

Destination принадлежит вызывающему и должен быть не nil; полный подготовленный документ пишется в текущей позиции без усечения существующего содержимого

XDPBytes поставляет template, datasets и опциональное сохранённое состояние формы; подготовленный входной PDF не нужен

Поля выбора сохраняют пары экспорт/отображение /Opt и реальные выборы /V и /I; булевы поля имеют реальные состояния /AP, а члены radio делят одного родителя на нативные области template и data

Draw прямоугольника, линии и эллиптической дуги дают настоящие нативные пути; инлайновые image draw PNG и JPEG дают нативные XObjects изображений с физическими пропорциями и альфа-масками, как описано в Нативная графика и изображения

TrueTypeFont поставляет реальное начертание, встраиваемое в ресурсы внешних видов Unicode; вызывающий удерживает массив, поток, список предупреждений и токен отмены

Options задаёт физические размеры страниц, политику редактирования, выполнение скриптов и ресурсные бюджеты; Warnings может быть nil — тогда предупреждения собираются временно, а возвращённая ссылка на предупреждения равна nil

Подготовка графа, разбор XML, построение внешних видов, отмена и ошибки сериализации кандидата оставляют Destination без изменений; ошибка WriteBuffer назначения может дать частичную запись и не откатывается для произвольных потоков

Неподдерживаемые виды потребителей сейчас возбуждают EHPDFXFAHeadlessError во время подготовки; поддерживаемые виды и оставшаяся интеграционная работа перечислены в Автоматическое создание XFA

Options := TXFAHeadlessPDFOptions.Default;
Options.PageWidth := 300;
Options.PageHeight := 500;
Output := TMemoryStream.Create;
try
  ResultInfo := HPDFXFAWriteHeadlessPDF(Output, SavedXDP, FontBytes,
    Options, nil);
  Output.SaveToFile('native-xfa.pdf');
finally
  Output.Free;
end;

Сохранение в поток или файл не запускает внешнюю читалку и не требует десктопной сессии

Опции и счётчики результата дают полные ссылки на публичные записи