HPDFXFAWriteHeadlessPDF

Unit: HPDFXFAHeadless

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

Destination é de posse do chamador e precisa ser não nil; o documento preparado completo é gravado na posição atual dele sem truncar conteúdo existente

XDPBytes fornece o template, os datasets e o estado opcional persistido do formulário; nenhum PDF de entrada preparado é exigido

Campos choice preservam pares export/display de /Opt e as seleções reais de /V e /I; campos booleanos têm estados /AP reais, e membros de radio compartilham um parent por template e data scope nativos

Draws de retângulos, linhas e arcos elípticos produzem paths nativos reais; draws inline de imagens PNG e JPEG produzem image XObjects nativos com aspecto físico e máscaras alfa, como descrito em Gráficos e imagens nativos

TrueTypeFont fornece a face real embutida nos recursos Unicode de aparências; o chamador retém o array, o stream, a lista de warnings e o token de cancelamento

Options define as dimensões físicas das páginas, a política de edição, a execução de scripts e os orçamentos de recursos; Warnings pode ser nil, caso em que os warnings são coletados temporariamente e a referência de warnings retornada é nil

Erros de preparação do grafo, parsing XML, construção de aparências, cancelamento e serialização do candidato deixam Destination inalterado; um erro de WriteBuffer no destino pode produzir escritas parciais e não é revertido para streams arbitrários

Kinds de consumers não suportados atualmente disparam EHPDFXFAHeadlessError durante a preparação; os kinds suportados e o trabalho de integração restante estão listados em Criação automática de 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;

Salvar em stream ou arquivo não chama um reader externo nem exige sessão de desktop

Opções e contagens de resultado fornecem as referências completas dos records públicos