THPDFHeadlessDocument.SaveRichTextFieldUpdatesToFile

function SaveRichTextFieldUpdatesToFile(const FileName: string;
  const Updates: THPDFHeadlessRichTextFieldUpdates;
  const Options: THPDFHeadlessFormDataOptions): Integer;

Prepara e publica atomicamente um PDF independente único contendo atualizações escalares de texto, escolhas e botões juntamente com runs originais tipados de rich text; devolve o número de campos alterados mantendo o grafo do documento carregado inalterado

O grafo atual é serializado para uma revisão privada autenticada antes de as atualizações serem aplicadas; edições existentes não guardadas de páginas e de campos, credenciais AES R5/R6, identificadores de encriptação e prefixos assinados de fontes permanecem disponíveis para o candidato

Runs tipados geram aparências diretamente, sem uma viagem de ida e volta de codificação/descodificação de XML rich; /V e /RV descrevem o texto e os estilos escritos, enquanto /AP mantém a precisão numérica PDF do motor existente de aparências para os tamanhos e cores tipados originais

Um no-op tipado exige valores plain e rich equivalentes mais streams geradas de aparências iguais e grafos resolvidos de tipos de letra/recursos para todos os widgets; a comparação desencripta streams existentes e normaliza referências indiretas de objetos, em vez de confiar apenas em cores /RV quantizadas

Isto permite campos genuinamente inalterados só de leitura ou bloqueados por assinaturas; uma cor real de pintura, tamanho, tipo de letra fornecido ou aparência de widget diferente segue as restrições normais de só de leitura, FieldMDP e DocMDP mesmo quando o valor rich serializado acontece de ser idêntico

A comparação é conservadora quanto a aparências existentes: PDFs escritos externamente com resultados visuais equivalentes mas uma representação diferente de operadores ou de recursos podem exigir uma atualização protegida ordinária

Quando todos os campos pedidos estão inalterados e o grafo carregado não tem edições pendentes, o PDF publicado é byte a byte idêntico à fonte carregada, incluindo bytes existentes de encriptação AES e revisões autenticadas de assinaturas; um array de atualizações vazio segue a mesma regra, sujeito às verificações existentes de compatibilidade de fontes

Edições pendentes no grafo de quem chama são serializadas para o candidato uma vez mesmo quando este método devolve zero alterações de campos; alterações alheias não guardadas de páginas ou de campos são preservadas, e o grafo original carregado permanece inalterado

A publicação sem atualizações ainda realiza validação de permissões e de assinaturas, verificações de aliases fonte/destino, verificações de orçamentos de saída, cancelamento e substituição atómica do destino; campos só de leitura e bloqueados exigem equivalência genuína de valores e de aparências

Este comportamento de preservação de bytes aplica-se a este método transacional; o método geral SaveToFile e as APIs separadas de importação FDF/XFDF mantêm o comportamento existente delas de gravação

Contagem de campos, nomes duplicados, Unicode, tamanhos de valores e capacidades agregadas de texto usam Options; contagem de runs tipados, unidades agregadas de glyphs, bytes fornecidos de tipos de letra, bytes de valores rich, objetos gerados e bytes de comparação de aparências também usam os limites do documento carregado

Um array partilhado gerido de bytes de tipos de letra é contado uma vez através de atualizações; alocações distintas consomem capacidade separada de entrada de tipos de letra mesmo quando os bytes delas correspondem, enquanto os orçamentos gerados de objetos e de saída PDF continuam a cobrir todas as aparências

Use o token de cancelamento do documento para opções de formulários e de aparências; campos inválidos, valores malformados, permissões, autenticação falhada de assinaturas, cancelamento ou falhas de orçamentos deixam o destino anterior intacto, e aliases fonte/destino são rejeitados

A API cobre transações nativas mistas; preenchimento tipado-rich por JSON de Windows, a extensão mais antiga de callbacks de trabalhos, intercâmbio de anotações e dados FDF incorporados ou incrementais são workflows separados

Registo e array de atualizações · Importação rich de FDF/XFDF