Расширения полей 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)| Parameter | Type | Description |
|---|---|---|
dateFormat | string | Шаблон даты в стиле Acrobat (например, "mm/dd/yyyy") |
dateValue | string | Исходная строка даты для форматирования |
Пример
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)| Parameter | Type | Description |
|---|---|---|
precision | int | Количество знаков после запятой |
sepStyle | int | Стиль разделителя тысяч (0 = запятая, 1 = нет, 2 = точка) |
negStyle | int | Стиль отрицательного числа (0 = минус, 1 = скобки, 2 = красный) |
currencySymbol | string | Символ, добавляемый в начале или в конце (например, "$") |
isPrependCurrency | bool | Когда true символ добавляется в начале; иначе — в конце |
fieldValue | string | Числовая строка для форматирования |
Пример
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.50FieldNumberPercentFormatter
FieldNumberPercentFormatter форматирует числовую строку как процент, умножая значение на 100 перед применением формата. Он соответствует функции JavaScript AF_Percent_Format.
Сигнатура метода
public string Format(
int precision,
int sepStyle,
bool isPrependPercent,
string fieldValue)| Параметр | Тип | Описание |
|---|---|---|
precision | int | Количество десятичных знаков |
sepStyle | int | Стиль разделителя тысяч |
isPrependPercent | bool | Когда true символ % ставится перед; в противном случае — после |
fieldValue | string | Числовая строка для форматирования (умножается на 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}");
}
}
}