Как да работите с JavaScript разширения в .NET

Как да работите с JavaScript разширения в .NET

Aspose.PDF FOSS for .NET includes server-side implementations of the PDF JavaScript AF_Date_Format, AF_Number_Format, and AF_Percent_Format functions via the FieldDateTimeFormatter, FieldNumberCurrencyFormatter, и FieldNumberPercentFormatter Инсталирайте пакета с: dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha и използва тези класове за форматиране на стойностите от полето AcroForm в сървъра, без да се изисква JavaScript двигател.

Постепенно ръководство

Стъпка 1: Инсталирайте пакета

Добавете Aspose.PDF FOSS към вашия проект:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

Стъпка 2: Импортиране на необходимите класове

using Aspose.Pdf.Annotations.JavascriptExtensions;

Стъпка 3: Форматиране на стойност от полето дата/време

FieldDateTimeFormatter.Format(dateFormat, dateValue) превръща чистия синхрон от дати в Acrobat-style pattern. Това съответства на PDF JavaScript AF_Date_Format функция.

string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");

Съветът на ЕС dateFormat параметърът използва Acrobat tokens във формат на дата (напр.., mm, dd, yyyy, HH, MM) Когато входът е dateValue не може да бъде анализиран, методът връща празен ред.


Стъпка 4: Форматиране на числово поле като валута

FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) форматира числово нишка като валутна стойност. Това съответства на PDF JavaScript AF_Number_Format функция.

var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
    precision: 2,
    sepStyle: 0,
    negStyle: 0,
    currencySymbol: "$",
    isPrependCurrency: true,
    fieldValue: "1234.5");

Параметри:

  • precision - брой десетични точки
  • sepStyle - стил на разделителя хиляди (0 = запетая, 1 = точка, 2 = нищо)
  • negStyle - стила на отрицателните числа (0 = скоби, 1 = минус префикс)
  • currencySymbol - нивото на символа за валута.
  • isPrependCurrency - да се постави символът преди числото.
  • fieldValue - чистият числов ред за форматиране

Стъпка 5: Форматирайте числово поле като процент

FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) форматира числово нишка като процент, умножавайки първо суровото значение с 100. Това съответства на PDF JavaScript AF_Percent_Format функция.

var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
    precision: 1,
    sepStyle: 0,
    isPrependPercent: false,
    fieldValue: "0.875");

Параметри:

  • precision - брой десетични места след децималната точка
  • sepStyle - стил на разделителя хиляди (0 = запетая, 1 = точка, 2 = нищо)
  • isPrependPercent - вярно, за да се предпостави символът %, невярно, ако се прибави
  • fieldValue - чистият числов ред (форматиращият умножава с 100)

Обичайни проблеми и решения

FieldDateTimeFormatter връща празен ред Това се случва, когато dateValue аргумент не може да бъде анализиран от модел на дата в dateFormat.Acrobat дата токен се различава от .NET DateTime формат струни.

FieldNumberCurrencyFormatter произвежда грешен децималния сепаратор Съветът на ЕС sepStyle Параметърът контролира разделителя на хиляди. За да използвате точка като отделител на Хиляда, преминавате през sepStyle: 1.

Изходът на FieldNumberPercentFormatter е 100x твърде голям Форматиращият умножава входната стойност по 100. fieldValue вече представлява процент (например “87,5” вместо “0,875”), делете на 100 преди да се обадите Формат.

Не е намерено пространство с имена след инсталиране на пакета Уверете се, че сте насочени към net8.0 или по-нови. Именното пространство JavascriptExtensions е налично само в пакета Aspose.Pdf.Foss .

NullReferenceИзключение на празно полеValue Преминаване на нулева или празна нишка като: fieldValue Ще предизвика изключение за парсиране. Потвърдете входа преди да се обадите на Формат.

Често задавани въпроси

Какво означава “съвпада с AF_Date_Format”?

PDF AcroForm JavaScript използва AF_Date_Format като вградена функция за форматиране на полета с дата. FieldDateTimeFormatter репликира същата логика за форматиране в .NET управляван код, така че можете да приложите същите нишки на формат на полето без изпълняване на JavaScript.

Мога ли да използвам тези форматиращи средства извън контекста на PDF документ?

  • Да, много добре. FieldDateTimeFormatter, FieldNumberCurrencyFormatter, и FieldNumberPercentFormatter са обикновени класове без зависимост от а Document Можете да ги използвате във всеки контекст на .NET 8+ като форматиращи утилити.

Каква е разликата между FieldNumberCurrencyFormatter и Field NumberPercentForMatter?

FieldNumberCurrencyFormatter форматира число като парична сума без умножение. FieldNumberPercentFormatter умножава входа с 100 и добавя или предварително поставя символ на процента.

Има ли начин да се свържат няколко форматиращи?

Не се предоставя вградено веригане. Прилагайте форматиращи последователно в кода.

Трябва ли ми пълният PDF документ, за да използвам тези класове?

Не. Форматиращите работят на обикновени нишки и връщат форматирани нички. Те не изискват отворена система за редактиране, която да се използва в системата. Document Във всеки случай.

Вижте също:

 Български