Kako raditi sa JavaScript ekstenzijama u .NET
Aspose.PDF FOSS for .NET uključuje implementacije na strani servera PDF JavaScript funkcija AF_Date_Format, AF_Number_Format i AF_Percent_Format putem klasa FieldDateTimeFormatter, FieldNumberCurrencyFormatter i FieldNumberPercentFormatter. Instalirajte paket pomoću dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha i koristite ove klase za formatiranje vrednosti polja AcroForm na serveru bez potrebe za JavaScript motorom.
Vodič korak po korak
Korak 1: Instalirajte paket
Dodajte Aspose.PDF FOSS u svoj projekat:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaKorak 2: Uvezi potrebne klase
using Aspose.Pdf.Annotations.JavascriptExtensions;Korak 3: Formatirajte vrednost polja datum/vreme
FieldDateTimeFormatter.Format(dateFormat, dateValue) konvertuje sirovi datum string prema obrascu formata datuma u stilu Acrobat. Ovo odgovara PDF JavaScript AF_Date_Format funkciji.
string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");Parametar dateFormat koristi tokene formata datuma iz Acrobat‑a (npr., mm, dd, yyyy, HH, MM). Kada se ulazni dateValue ne može parsirati, metoda vraća prazan string.
Korak 4: Formatirajte numeričko polje kao valutu
FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formatira numerički niz kao vrednost valute. Ovo odgovara PDF JavaScript AF_Number_Format funkciji.
var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
precision: 2,
sepStyle: 0,
negStyle: 0,
currencySymbol: "$",
isPrependCurrency: true,
fieldValue: "1234.5");precision- broj decimalnih mestasepStyle- stil razdvajanja hiljada (0 = zarez, 1 = tačka, 2 = nijedan)negStyle- stil negativnog broja (0 = zagrade, 1 = prefiks minus)currencySymbol- string simbola valuteisPrependCurrency- true da se simbol postavi pre brojafieldValue- neobrađeni numerički string za formatiranje
Korak 5: Formatirajte numeričko polje kao procenat
FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formatira numerički string kao procenat, prvo množeći sirovu vrednost sa 100. Ovo odgovara PDF JavaScript funkciji AF_Percent_Format.
var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
precision: 1,
sepStyle: 0,
isPrependPercent: false,
fieldValue: "0.875");Parametri:
precision- broj decimalnih mesta posle decimalne tačkesepStyle- stil separatora hiljada (0 = zarez, 1 = tačka, 2 = nijedan)isPrependPercent- true da se % simbol doda ispred, false da se doda poslefieldValue- sirovi numerički string (formatiranje množi sa 100)
Uobičajeni problemi i popravke
FieldDateTimeFormatter vraća prazan string
Ovo se dešava kada argument dateValue ne može da se parsira prema obrascu datuma u dateFormat. Acrobat tokeni datuma se razlikuju od .NET DateTime format stringova.
FieldNumberCurrencyFormatter proizvodi pogrešan decimalni separator
Parametar sepStyle kontroliše separator hiljada. Da biste koristili tačku kao separator hiljada, prosledite sepStyle: 1.
FieldNumberPercentFormatter izlaz je 100x prevelik
Formatter množi ulaznu vrednost sa 100. Ako vaš fieldValue već predstavlja procenat (npr. “87.5” umesto “0.875”), podelite sa 100 pre nego što pozovete Format.
Namespace nije pronađen nakon instalacije paketa
Uverite se da ciljate net8.0 ili noviji. Namespace JavascriptExtensions je dostupan samo u paketu Aspose.Pdf.Foss.
NullReferenceException na praznoj fieldValue
Prosleđivanje null ili praznog stringa kao fieldValue izazvaće izuzetak pri parsiranju. Validirajte ulaz pre nego što pozovete Format.
Često postavljana pitanja
Šta znači „corresponds to AF_Date_Format“?
PDF AcroForm JavaScript koristi AF_Date_Format kao ugrađenu funkciju formatiranja za polja datuma. FieldDateTimeFormatter replicira istu logiku formatiranja u .NET upravljanom kodu kako biste mogli primeniti iste stringove formata polja bez izvršavanja JavaScript‑a.
Могу ли да користим ове форматираче ван контекста PDF документа?
Да. FieldDateTimeFormatter, FieldNumberCurrencyFormatter и FieldNumberPercentFormatter су обичне класе без зависности од инстанце Document. Можете их користити у било ком .NET 8+ контексту као помоћне форматоре.
Koja je razlika između FieldNumberCurrencyFormatter i FieldNumberPercentFormatter?
FieldNumberCurrencyFormatter formatira broj kao iznos u novcu bez množenja. FieldNumberPercentFormatter množi ulaz sa 100 i dodaje ili stavlja simbol procenta na kraj ili početak.
Da li postoji način da se poveže više formatera?
Nije obezbeđeno ugrađeno lančanje. Primeni formatere sekvencijalno u kodu.
Da li mi je potreban cijeli PDF dokument da bih koristio ove klase?
Ne. Formatatori rade na običnim stringovima i vraćaju formatirane stringove. Oni ne zahtevaju otvorenu Document instancu.