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