Ako pracovať s JavaScript rozšíreniami v .NET

Ako pracovať s JavaScript rozšíreniami v .NET

Aspose.PDF FOSS pre .NET obsahuje implementácie na strane servera funkcií PDF JavaScript AF_Date_Format, AF_Number_Format a AF_Percent_Format prostredníctvom tried FieldDateTimeFormatter, FieldNumberCurrencyFormatter a FieldNumberPercentFormatter. Nainštalujte balík pomocou dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha a použite tieto triedy na formátovanie hodnôt polí AcroForm na serveri bez potreby JavaScriptového enginu.

Sprievodca krok za krokom

Krok 1: Nainštalovať balík

Pridajte Aspose.PDF FOSS do svojho projektu:

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

Krok 2: Importovať požadované triedy

using Aspose.Pdf.Annotations.JavascriptExtensions;

Krok 3: Formátovať hodnotu poľa dátumu/času

FieldDateTimeFormatter.Format(dateFormat, dateValue) konvertuje surový reťazec dátumu podľa vzoru formátu dátumu v štýle Acrobat. Toto zodpovedá funkcii PDF JavaScript AF_Date_Format.

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

Parameter dateFormat používa tokeny formátu dátumu Acrobat (napr. mm, dd, yyyy, HH, MM). Keď vstup dateValue nie je možné analyzovať, metóda vráti prázdny reťazec.


Krok 4: Formátovať číselné pole ako menu

FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formátuje číselný reťazec ako hodnotu meny. Toto zodpovedá funkcii 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");

Parametre:

  • precision - počet desatinných miest
  • sepStyle - štýl oddeľovača tisícov (0 = čiarka, 1 = bodka, 2 = žiadny)
  • negStyle - štýl záporných čísel (0 = zátvorky, 1 = mínus predpona)
  • currencySymbol - reťazec symbolu meny
  • isPrependCurrency - true na umiestnenie symbolu pred číslo
  • fieldValue - surový číselný reťazec na formátovanie

Krok 5: Formátovať číselné pole ako percento

FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formátuje číselný reťazec ako percento, najprv vynásobí surovú hodnotu 100. Toto zodpovedá funkcii PDF JavaScript AF_Percent_Format.

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

Parametre:

  • precision - počet desatinných miest za desatinnou čiarkou
  • sepStyle - štýl oddeľovača tisícov (0 = čiarka, 1 = bodka, 2 = žiadny)
  • isPrependPercent - true pre pridanie symbolu % na začiatok, false pre pridanie na koniec
  • fieldValue - surový číselný reťazec (formátovač vynásobí 100)

Bežné problémy a riešenia

FieldDateTimeFormatter vracia prázdny reťazec
Toto nastane, keď argument dateValue nie je možné analyzovať podľa dátového vzoru v dateFormat. Tokeny dátumu v Acrobat sa líšia od formátovacích reťazcov .NET DateTime.

FieldNumberCurrencyFormatter produkuje nesprávny desatinný oddeľovač
Parameter sepStyle riadi oddeľovač tisícov. Ak chcete použiť bodku ako oddeľovač tisícov, odovzdajte sepStyle: 1.

FieldNumberPercentFormatter výstup je 100‑krát príliš veľký
Formátovač vynásobí vstupnú hodnotu číslom 100. Ak váš fieldValue už predstavuje percento (napr. “87.5” namiesto “0.875”), delte číslom 100 pred volaním Format.

Menný priestor nebol nájdený po inštalácii balíka
Uistite sa, že cílite na net8.0 alebo novší. Menný priestor JavascriptExtensions je k dispozícii iba v balíku Aspose.Pdf.Foss.

NullReferenceException pri prázdnej hodnote fieldValue
Predanie null alebo prázdneho reťazca ako fieldValue spôsobí parse exception. Overte vstup pred volaním Format.

Často kladené otázky

Čo znamená „corresponds to AF_Date_Format“?

PDF AcroForm JavaScript používa AF_Date_Format ako vstavanú funkciu formátovania pre dátové polia. FieldDateTimeFormatter reprodukuje rovnakú logiku formátovania v .NET spravovanom kóde, takže môžete použiť rovnaké reťazce formátu poľa bez spúšťania JavaScriptu.

Môžem tieto formátovače použiť mimo kontextu PDF dokumentu?

Áno. FieldDateTimeFormatter, FieldNumberCurrencyFormatter a FieldNumberPercentFormatter sú obyčajné triedy bez závislosti na inštancii Document. Môžete ich použiť v akomkoľvek kontexte .NET 8+ ako pomocné formátovače.

Aký je rozdiel medzi FieldNumberCurrencyFormatter a FieldNumberPercentFormatter?

FieldNumberCurrencyFormatter formátuje číslo ako peňažnú sumu bez násobenia. FieldNumberPercentFormatter vynásobí vstup číslom 100 a pridá alebo vloží percentový symbol.

Existuje spôsob, ako reťaziť viacero formátovačov?

Nie je k dispozícii vstavané reťazenie. Aplikujte formátovače sekvenčne v kóde.

Potrebujem celý PDF dokument na použitie týchto tried?

Nie. Formátovače pracujú s obyčajnými reťazcami a vracajú formátované reťazce. Nepotrebujú otvorenú inštanciu Document.

Pozri tiež

 Slovenčina