THPDFWindowsFormDataTransaction

HPDFWindowsFormData ofrece un bridge de Windows desde el grafo actual de THotPDF hacia el engine nativo autenticado de FDF/XFDF

Declaraciones

constructor Create(Document: THotPDF; OriginalSource: TStream;
  const Password: AnsiString; const Limits: THPDFWindowsFormDataLimits;
  Checkpoint: TNotifyEvent = nil);
procedure SetSignaturePolicyOptions(const Options: THPDFHeadlessCMSOptions);
function ExportData(Format: THPDFHeadlessFormDataFormat;
  const Options: THPDFHeadlessFormDataOptions): TBytes;
procedure ImportData(const Bytes: TBytes; Format: THPDFHeadlessFormDataFormat;
  const Fonts: THPDFHeadlessRichTextFonts;
  const AppearanceOptions: THPDFHeadlessTextAppearanceOptions;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
procedure ImportDataWithFamilies(const Bytes: TBytes;
  Format: THPDFHeadlessFormDataFormat; const Families: THPDFHeadlessRichTextFontFamilies;
  const AppearanceOptions: THPDFHeadlessTextAppearanceOptions;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
procedure FillTypedData(const Updates: THPDFHeadlessRichTextFieldUpdates;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
function ExportAnnotations(const Options: THPDFHeadlessXFDFOptions;
  out Bytes: SysUtils.TBytes): THPDFHeadlessXFDFExportResult;
procedure ImportAnnotations(const Bytes: SysUtils.TBytes;
  const Options: THPDFHeadlessXFDFOptions; const Password: AnsiString);
property ChangedAnnotations: Integer;
function PreparedFieldCount: Integer;
procedure GetPreparedField(Index: Integer; out Name, Value: UnicodeString;
  out FieldType: Integer);
procedure WritePreparedPDF(Destination: TStream);
procedure TakeCandidate(out Document: THotPDF;
  out Source: THPDFWindowsFormDataSource);
property ChangedFields: Integer;
property CancellationToken: THPDFCancellationToken;

Propiedad y política

Document, OriginalSource y Checkpoint se toman prestados hasta la destrucción; OriginalSource debe corresponder exactamente a la revisión original cargada del documento; el constructor copia y sella una fuente original privada, autentica sus credenciales AES y prepara el grafo pendiente real en otra fuente privada

El engine nativo comprueba la integridad de firmas existentes y el binding de certificados ESS, los permisos DocMDP, los locks FieldMDP y los flags de solo lectura de campos; las actualizaciones permitidas P2/P3 regeneran apariencias genuinas mientras retienen los bytes firmados originales

Las verificaciones requeridas de trust, timestamps y revocación firmada pueden configurarse con SetSignaturePolicyOptions; una verificación ordinaria de integridad no implica trust en una raíz de negocio no especificada

ImportData prepara un PDF candidato y un THotPDF cargado por separado; no muta el documento prestado; una importación semánticamente sin cambios sigue autenticando la política firmada antes de copiar la revisión actual exacta

WritePreparedPDF copia los bytes acotados del candidato al stream suministrado; publica con éxito cada callback requerido de PDF y de resultado antes de TakeCandidate; un fallo o una cancelación implican descartar la transacción

TakeCandidate transfiere la propiedad tanto del THotPDF como de su THPDFWindowsFormDataSource; destruye el documento antes de destruir su fuente; el candidato no retiene el token de cancelación de la transacción

THPDFWindowsFormDataSource es dueño de un archivo temporal creado de forma exclusiva; Seal lo vacía y lo reabre para acceso de solo lectura; la destrucción cierra y elimina el archivo; los callbacks de la fuente no sobreviven a la fuente propietaria

ExportAnnotations y ImportAnnotations implementan el intercambio XFDF mapeado de anotaciones; ChangedAnnotations reporta el conteo de appends, usando el mismo contador de cambios preparados que ChangedFields

Límites

FillTypedData prepara campos escalares mixtos y runs tipados enriquecidos originales en el mismo candidato sin un round-trip de decodificación RV; los accessors de campos preparados leen el candidato resultante real

ImportDataWithFamilies selecciona de una a dieciséis familias con nombre con programas de estilo reales y el mismo ciclo de vida de candidato autenticado; el método ImportData original conserva su comportamiento de familia única

THPDFWindowsFormDataLimits.Default establece MaxWorkingBytes en 256 MiB, MaxOutputBytes en 128 MiB, MaxObjects en 100000 y MaxPages en 10000; la capacidad de trabajo debe ser de al menos 1 MiB y todas las demás capacidades deben ser positivas

CancellationToken se toma prestado y es válido solo hasta la destrucción de la transacción; consulta el token de operación del documento original y el Checkpoint durante el parsing nativo, la decodificación de XML enriquecido, la validación de política y la copia

Esta clase de Windows está disponible para Delphi moderno, C++Builder y FPC en Windows; el Linux nativo usa THPDFHeadlessDocument directamente

Temas relacionados

Intercambio FDF/XFDF en Windows, Preparación del grafo actual, Datos de formulario nativos

Grafos de anotaciones FDF

ExportAnnotationsFDF devuelve el conteo de anotaciones y escribe FDF binario acotado en Bytes; ImportAnnotationsFDF prepara un candidato usando THPDFFDFOptions

El perfil FDF retiene los recursos de apariencia suministrados y los objetos indirectos compartidos; los valores NM coincidentes en la misma página seleccionan anotaciones existentes para reemplazar

Los métodos FDF usan la misma propiedad de documento prestado, política autenticada y ciclo de vida de candidato preparado; ChangedAnnotations cuenta reemplazos y adiciones reales, y un import equivalente retiene la revisión actual exacta

Eliminación de anotaciones

RemoveAnnotations prepara eliminaciones exactas de página-y-NM, incluidos popups y respuestas dependientes, a través del mismo ciclo de vida de candidato; ChangedAnnotations reporta todas las eliminaciones una vez

Publiquen los datos PDF y de resultado antes de TakeCandidate; la falla deja el documento y la fuente prestados sin cambios