Procesamiento avanzado de AcroForm
HotPDF puede recalcular campos cargados, regenerar apariencias de texto variable basadas en estándares, resolver estados de apariencia de anotaciones y aplanar un conjunto de campos seleccionado sin reescribir páginas no modificadas
Orden de cálculo
RecalculateLoadedFormFields sigue la matriz /AcroForm /CO cargada y evalúa las operaciones acotadas AFSimple_Calculate SUM, AVG, PRD, MIN y MAX mediante el evaluador seguro de scripts de campo
ApplyLoadedFieldCalculation instala la acción de cálculo y agrega el campo de destino a /CO sin entradas duplicadas
Scripts de campo seguros
EvaluateLoadedFieldJavaScript evalúa solo las sentencias declarativas de cálculo y validación asociadas con el disparador de campo solicitado
- Las expresiones admiten valores booleanos, numéricos, de cadena, null, undefined y de matriz con operadores aritméticos, unarios, de comparación, de igualdad, lógicos de cortocircuito y condicionales
event.valueconserva la semántica de entrada de cadena, mientras que el texto de campo numérico permanece numérico para compatibilidad con los cálculos existentes- Los ayudantes de la lista blanca cubren la conversión de números y cadenas, el análisis, funciones
Mathseleccionadas, el análisis y la construcción deterministas de fechas UTC y la inspección acotada de cadenas y matrices AFSimple_Calculate,AFRange_Validate, la asignación deevent.valuey la asignación deevent.rcproporcionan resultados deterministas de cálculo y validación- Los bucles, la evaluación dinámica, el acceso a aplicaciones, el envío, la importación, el lanzamiento y otro contenido activo se rechazan
- Los límites son 8 192 bytes de script, 32 sentencias, 4 096 bytes de expresión, 32 niveles de analizador, 1 024 operaciones, 64 argumentos, 128 elementos de matriz, 65 536 bytes de cadena y 262 144 bytes de valores rastreados
Apariencias de texto variable
EnsureLoadedFieldAppearanceStream recorre cada widget y hereda los valores /DA, /Q, /V, /DV, /Ff y /MaxLen de la jerarquía de campos o de AcroForm
- El cuadrante izquierdo, central y derecho usa las coordenadas de apariencia locales del widget
- El texto multilínea recibe colocación de línea y recorte acotados
- Un tamaño de fuente de apariencia predeterminada de cero activa el dimensionado automático
- Los campos Comb colocan cada carácter de forma independiente en las celdas
/MaxLen
Estados de apariencia de anotaciones
GetLoadedAnnotationAppearanceStream resuelve las apariencias normal, rollover o down y retrocede de rollover o down a normal
Los diccionarios de estado usan /AS, /V o /DV heredados, el estado del padre, /Off y la reserva de flujo único en ese orden
Aplanado selectivo
FlattenLoadedFormFields pinta solo las apariencias de widget seleccionadas en sus páginas propietarias, elimina solo los campos y anotaciones coincidentes y conserva cada página y campo no modificado
La puerta de permisos predeterminada rechaza los cambios estructurales bajo DocMDP y aplica los bloqueos FieldMDP All, Include y Exclude antes de que se modifique cualquier página
PDF.BeginIncrementalUpdate('SignedForm.pdf');
PDF.RecalculateLoadedFormFields;
PDF.FlattenLoadedFormFields(['Subtotal', 'Total']);
PDF.SaveIncrementalUpdate('SignedForm-updated.pdf');