Transporte estándar de appearances de stamps XFDF

Las anotaciones Stamp pueden exportar e importar sus streams de appearance PDF reales y sus diccionarios de recursos a través del elemento appearance de Adobe XFDF

El perfil stamp-typed-xml-v1 usa typed XML UTF-8 codificado en base64, según describe la especificación Adobe XFDF 3; el payload decodificado representa objetos PDF, no un archivo PDF o FDF completo

Recursos mapeados

El DICT KEY="AP" de nivel superior contiene un stream Form normal N obligatorio y streams rollover R y down D opcionales

Los Forms retienen su BBox finito de cuatro números, el Matrix opcional de seis números y el grafo de recursos soportado, incluidas las fuentes y sus programas incrustados, imágenes y soft masks, color spaces, patterns, shadings, funciones y graphics states

Los valores tipados incluyen DICT, STREAM, ARRAY, INT, FIXED, NAME, BOOL y NULL; las claves de diccionario y los valores de nombre preservan sus nombres PDF semánticos, y los tokens numéricos válidos de origen preservan la precisión decimal

El DATA de streams soporta MODE="RAW" o MODE="FILTERED" con ENCODING="HEX" o ENCODING="ASCII" de siete bits; RAW retiene los bytes codificados y su Filter/DecodeParms, mientras que FILTERED instala bytes decodificados sin metadatos de filtrado obsoletos

La exportación usa datos hexadecimales RAW y regenera el Length del stream a partir de los bytes reales; los streams cifrados autenticados se decodifican o descifran antes del intercambio y se cifran correctamente en la revisión guardada

Los recursos acíclicos compartidos se expanden como valores equivalentes y se importan con referencias de objeto independientes; este perfil no preserva la identidad de referencias

Los bytes de programas de fuentes incrustadas y sus flags de incrustación se preservan sin cambiar los bits de licencia ni sustituir un programa de fuente distinto

APIs y callbacks

Use HPDFExportHeadlessAnnotationsXFDF y SaveAnnotationsXFDFToFile para transacciones nativas, o las sobrecargas acotadas de HPDFXFDFExportAnnotations y HPDFXFDFImportAnnotations para adaptadores de grafos propiedad del llamador

Los file jobs y callbacks V1 de Windows y los callbacks V1 de Linux existentes usan sus operaciones de anotaciones y layouts de registros existentes

Las capacidades retienen appearanceImport=false para appearances generales de anotaciones y añaden stampAppearanceImport=true, appearanceProfile="stamp-typed-xml-v1", appearanceTypes=["stamp"], appearanceDataModes=["RAW","FILTERED"], appearanceEncodings=["ASCII","HEX"] y appearanceResources="acyclic-expanded-graph"

Transacciones y límites

El XML de entrada, el base64, los nombres, la codificación de streams, los tipos de recursos, las claves de diccionario semánticas y la geometría de Forms se validan antes de publicar; los datos mal formados, los ciclos, los límites acumulativos agotados o la cancelación hacen fallar la transacción completa

Los límites XFDF cubren la entrada/salida total, los nodos XML y de grafo, la profundidad, el almacenamiento de streams y las reservas de trabajo a lo largo de la operación de anotaciones

La importación retiene el estado del grafo actual sin guardar, la seguridad AES R5/R6 y las restricciones de certificación autenticadas; P1/P2 niegan los cambios de anotaciones y P3 preserva el prefijo firmado original y la integridad genuina de la firma

Una importación vacía autorizada devuelve cero y preserva los bytes PDF actuales exactos cuando no hay cambios sin guardar; los cambios dirty del grafo se guardan sin descartarse

Los contextos de callbacks de Windows y Linux adoptan un PDF preparado solo después de que la salida PDF, la salida JSON del resultado y la comprobación final de cancelación tengan éxito; los callbacks fallidos o parciales retienen el contexto previo, y el primer escritor fallido permanece sticky

La importación de solo anotaciones acepta contenedores fields vacíos y declaraciones de campos sin valor como metadatos no-op; los valores reales de formulario y las actualizaciones rich de campos exigen la operación separada autenticada de form data

Trabajo restante

El transporte AP general de anotaciones, los diccionarios de estado de appearance, los valores de recursos string, las referencias DEFINE/REF no vacías, los grafos cíclicos, el overlayappearance de Redact, el reemplazo/eliminación de anotaciones y el intercambio de anotaciones FDF siguen siendo trabajo aparte

Las anotaciones geométricas y de texto sin una appearance de stamp transportada retienen su comportamiento existente; esta operación no sintetiza appearances arbitrarias de anotaciones ni ejecuta acciones

El adaptador acotado compartido reserva las claves crudas de anotaciones y los grafos AP expandidos antes de la conversión de payload, y reserva el whitespace base64 y el DATA decodificado antes de asignar esas representaciones; la conversión de nombres PDF usa pasadas lineales con checkpoints de cancelación