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-alphaKrok 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 miestsepStyle- š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 menyisPrependCurrency- true na umiestnenie symbolu pred číslofieldValue- 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 čiarkousepStyle- š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 koniecfieldValue- 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.