Transporte de apariencias de stamp XFDF estándar

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

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

Recursos mapeados

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

Los Forms retienen su BBox finito de cuatro números, su Matrix opcional de seis números y su grafo de recursos soportado, incluidas las fuentes y sus programas incrustados, imágenes y soft masks, espacios de color, patrones, shadings, funciones y estados gráficos

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 de números de origen válidos preservan la precisión decimal

El DATA de stream 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

Export 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 compartidos acíclicos 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 grafo owned por el caller

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

Las capabilities retienen appearanceImport=false para apariencias 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, base64, nombres, encoding de streams, tipos de recursos, claves de diccionario semánticas y geometría de Form se validan antes de publicar; datos malformed, ciclos, límites acumulativos agotados o cancelación hacen fallar la transacción completa

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

El import retiene el estado de grafo no guardado actual, la seguridad AES R5/R6 y las restricciones autenticadas de certificación; P1/P2 niegan los cambios de anotaciones y P3 preserva el prefijo firmado original y la integridad genuina de la firma

Un import vacío autorizado devuelve cero y preserva los bytes PDF actuales exactos cuando no hay cambios sin guardar; los cambios de grafo dirty se guardan sin descartarse

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

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

Trabajo restante

El transporte AP general de anotaciones, diccionarios de estado de apariencia, valores de recursos de cadena, referencias DEFINE/REF no vacías, grafos cíclicos, Redact overlayappearance, reemplazo/eliminación de anotaciones e intercambio FDF de anotaciones siguen siendo trabajo separado

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

El adaptador acotado compartido reserva claves de anotación raw y grafos AP expandidos antes de la conversión del payload, y reserva el espacio en blanco base64 y el DATA decodificado antes de asignar esas representaciones; la conversión de nombres PDF usa pasadas lineales con checkpoints de cancelación