Extensiones de campo JavaScript

Extensiones de campo JavaScript

Extensiones de campo JavaScript

El espacio de nombres Aspose.Pdf.Annotations.JavascriptExtensions contiene contrapartes administradas de las funciones de formato AF_ de Acrobat JavaScript. Estas clases le permiten reproducir la lógica de visualización de campos PDF dentro de su aplicación .NET sin ejecutar JavaScript.

FieldDateTimeFormatter es una clase estática — llame a Format directamente en el tipo.
FieldNumberCurrencyFormatter y FieldNumberPercentFormatter son clases regulares — cree una instancia, luego llame a Format. Cada método acepta los mismos parámetros que la función correspondiente de Acrobat JavaScript y devuelve una cadena formateada.


FieldDateTimeFormatter

FieldDateTimeFormatter formatea una cadena de fecha/hora sin procesar usando un patrón de formato de fecha al estilo Acrobat. Corresponde a la función JavaScript AF_Date_Format.

Firma del método

public static string Format(string dateFormat, string dateValue)
ParámetroTipoDescripción
dateFormatstringPatrón de formato de fecha al estilo Acrobat (p. ej. "mm/dd/yyyy")
dateValuestringCadena de fecha sin procesar para formatear

Ejemplo

using Aspose.Pdf.Annotations.JavascriptExtensions;
string result = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");
Console.WriteLine(result); // 06/11/2026

Si el valor de entrada no se puede analizar, el formateador devuelve el valor original sin cambios.


FieldNumberCurrencyFormatter

FieldNumberCurrencyFormatter formatea una cadena numérica como un valor de moneda.
Corresponde a la función JavaScript AF_Number_Format.

Firma del método

public string Format(
    int precision,
    int sepStyle,
    int negStyle,
    string currencySymbol,
    bool isPrependCurrency,
    string fieldValue)
ParámetroTipoDescripción
precisionintNúmero de decimales
sepStyleintEstilo del separador de miles (0 = coma, 1 = ninguno, 2 = punto)
negStyleintEstilo de número negativo (0 = menos, 1 = paréntesis, 2 = rojo)
currencySymbolstringSímbolo antepuesto o pospuesto (p. ej. "$")
isPrependCurrencyboolCuando true el símbolo se antepone; de lo contrario se agrega
fieldValuestringCadena numérica a formatear

Ejemplo

using Aspose.Pdf.Annotations.JavascriptExtensions;
var formatter = new FieldNumberCurrencyFormatter();
string result = formatter.Format(
    precision: 2,
    sepStyle: 0,
    negStyle: 0,
    currencySymbol: "$",
    isPrependCurrency: true,
    fieldValue: "1234.5");
Console.WriteLine(result); // $1,234.50

FieldNumberPercentFormatter

FieldNumberPercentFormatter formatea una cadena numérica como un porcentaje, multiplicando el valor por 100 antes de aplicar el formato. Corresponde a la función JavaScript AF_Percent_Format.

Firma del método

public string Format(
    int precision,
    int sepStyle,
    bool isPrependPercent,
    string fieldValue)
ParámetroTipoDescripción
precisionintNúmero de decimales
sepStyleintEstilo del separador de miles
isPrependPercentboolCuando true el símbolo % se antepone; de lo contrario se agrega al final
fieldValuestringCadena numérica a formatear (multiplicada por 100)

Ejemplo

using Aspose.Pdf.Annotations.JavascriptExtensions;
var formatter = new FieldNumberPercentFormatter();
string result = formatter.Format(
    precision: 1,
    sepStyle: 0,
    isPrependPercent: false,
    fieldValue: "0.1234");
Console.WriteLine(result); // 12.3%

Uso de formateadores en un bucle de procesamiento de formularios

El siguiente patrón aplica formato de moneda a todos los valores de campos de texto en un formulario PDF:

using Aspose.Pdf;
using Aspose.Pdf.Annotations.JavascriptExtensions;
byte[] data = File.ReadAllBytes("form.pdf");
using var doc = Document.Open(data);
if (doc.Form is not null)
{
    var currencyFormatter = new FieldNumberCurrencyFormatter();
    foreach (var field in doc.Form.Fields)
    {
        if (field.Value is not null)
        {
            string formatted = currencyFormatter.Format(
                precision: 2,
                sepStyle: 0,
                negStyle: 0,
                currencySymbol: "$",
                isPrependCurrency: true,
                fieldValue: field.Value);
            Console.WriteLine($"{field.Name}: {formatted}");
        }
    }
}

Ver también

 Español