Расширения полей JavaScript

Расширения полей JavaScript

Расширения полей JavaScript

Пространство имен Aspose.Pdf.Annotations.JavascriptExtensions содержит управляемые аналоги функций форматирования Acrobat JavaScript AF_. Эти классы позволяют воспроизводить логику отображения полей PDF в вашем .NET приложении без выполнения JavaScript.

FieldDateTimeFormatter — статический класс — вызывайте Format непосредственно на типе.
FieldNumberCurrencyFormatter и FieldNumberPercentFormatter — обычные
классы — создайте экземпляр, затем вызовите Format. Каждый метод принимает те же
параметры, что и соответствующая функция Acrobat JavaScript, и возвращает
отформатированную строку.


FieldDateTimeFormatter

FieldDateTimeFormatter форматирует необработанную строку даты/времени, используя шаблон формата даты в стиле Acrobat. Это соответствует функции JavaScript AF_Date_Format.

Сигнатура метода

public static string Format(string dateFormat, string dateValue)
ParameterTypeDescription
dateFormatstringШаблон даты в стиле Acrobat (например, "mm/dd/yyyy")
dateValuestringИсходная строка даты для форматирования

Пример

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

Если входное значение не может быть разобрано, форматировщик возвращает исходное значение без изменений.


FieldNumberCurrencyFormatter

FieldNumberCurrencyFormatter форматирует числовую строку как значение валюты. Это соответствует функции JavaScript AF_Number_Format.

Сигнатура метода

public string Format(
    int precision,
    int sepStyle,
    int negStyle,
    string currencySymbol,
    bool isPrependCurrency,
    string fieldValue)
ParameterTypeDescription
precisionintКоличество знаков после запятой
sepStyleintСтиль разделителя тысяч (0 = запятая, 1 = нет, 2 = точка)
negStyleintСтиль отрицательного числа (0 = минус, 1 = скобки, 2 = красный)
currencySymbolstringСимвол, добавляемый в начале или в конце (например, "$")
isPrependCurrencyboolКогда true символ добавляется в начале; иначе — в конце
fieldValuestringЧисловая строка для форматирования

Пример

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 форматирует числовую строку как процент, умножая значение на 100 перед применением формата. Он соответствует функции JavaScript AF_Percent_Format.

Сигнатура метода

public string Format(
    int precision,
    int sepStyle,
    bool isPrependPercent,
    string fieldValue)
ПараметрТипОписание
precisionintКоличество десятичных знаков
sepStyleintСтиль разделителя тысяч
isPrependPercentboolКогда true символ % ставится перед; в противном случае — после
fieldValuestringЧисловая строка для форматирования (умножается на 100)

Пример

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%

Использование форматтеров в цикле обработки формы

Следующий шаблон применяет форматирование валюты ко всем значениям текстовых полей в 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}");
        }
    }
}

См. также

 Русский