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