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