Cum să lucrați cu extensiile JavaScript în .NET
Aspose.PDF FOSS pentru .NET include implementări pe server ale funcțiilor PDF JavaScript AF_Date_Format, AF_Number_Format și AF_Percent_Format prin clasele FieldDateTimeFormatter, FieldNumberCurrencyFormatter și FieldNumberPercentFormatter. Instalați pachetul cu dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha și folosiți aceste clase pentru a formata valorile câmpurilor AcroForm pe server fără a necesita un motor JavaScript.
Ghid pas cu pas
Pasul 1: Instalaţi pachetul
Adăugați Aspose.PDF FOSS în proiectul dvs.:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaPasul 2: Importă clasele necesare
using Aspose.Pdf.Annotations.JavascriptExtensions;Pasul 3: Formataţi o valoare de câmp Dată/Ora
FieldDateTimeFormatter.Format(dateFormat, dateValue) convertește un șir de dată brut conform unui model de format de dată în stil Acrobat. Aceasta corespunde funcției PDF JavaScript AF_Date_Format.
string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");Parametrul dateFormat folosește token-uri de format de dată Acrobat (de exemplu, mm, dd, yyyy, HH, MM). Când intrarea dateValue nu poate fi analizată, metoda returnează un șir gol.
Pasul 4: Formataţi un câmp numeric ca monedă
FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formatează un șir numeric ca o valoare monetară. Aceasta corespunde funcției 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- numărul de zecimalesepStyle- stil separator de mii (0 = virgulă, 1 = punct, 2 = niciunul)negStyle- stil număr negativ (0 = paranteze, 1 = prefix minus)currencySymbol- șirul simbolului valutarisPrependCurrency- adevărat pentru a plasa simbolul înaintea număruluifieldValue- șirul numeric brut de formatat
Pasul 5: Formatați un câmp numeric ca procent
FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formatează un șir numeric ca procent, multiplicând mai întâi valoarea brută cu 100. Acest lucru corespunde funcției PDF JavaScript AF_Percent_Format.
var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
precision: 1,
sepStyle: 0,
isPrependPercent: false,
fieldValue: "0.875");Parametri:
precision- numărul de zecimale după punctul zecimalsepStyle- stilul separatorului de mii (0 = virgulă, 1 = punct, 2 = niciunul)isPrependPercent- true pentru a adăuga simbolul % la început, false pentru a-l adăuga la sfârșitfieldValue- șirul numeric brut (formatorul înmulțește cu 100)
Probleme comune și soluții
FieldDateTimeFormatter returnează șir gol
Acest lucru se întâmplă când argumentul dateValue nu poate fi analizat de modelul de dată din dateFormat. Token-urile de dată Acrobat diferă de șirurile de format .NET DateTime.
FieldNumberCurrencyFormatter produce separatorul zecimal greșit
Parametrul sepStyle controlează separatorul de mii. Pentru a folosi un punct ca separator de mii, transmiteți sepStyle: 1.
FieldNumberPercentFormatter output este de 100 de ori prea mare
Formatorul înmulțește valoarea de intrare cu 100. Dacă fieldValue reprezintă deja un procent (de exemplu, “87.5” în loc de “0.875”), împarte la 100 înainte de a apela Format.
Namespace nu a fost găsit după instalarea pachetului
Asigurați-vă că vizați net8.0 sau o versiune ulterioară. Namespace-ul JavascriptExtensions este disponibil numai în pachetul Aspose.Pdf.Foss.
NullReferenceException on empty fieldValue
Transmiterea null sau a unui șir gol ca fieldValue va genera o excepție de parsare. Validați intrarea înainte de a apela Format.
Întrebări frecvente
Ce înseamnă „corresponds to AF_Date_Format”?
JavaScript‑ul PDF AcroForm folosește AF_Date_Format ca funcție de formatare încorporată pentru câmpurile de tip dată. FieldDateTimeFormatter replică aceeași logică de formatare în cod gestionat .NET, astfel încât să poţi aplica aceleaşi şiruri de format pentru câmpuri fără a executa JavaScript.
Pot să folosesc acești formatori în afara contextului unui document PDF?
Da. FieldDateTimeFormatter, FieldNumberCurrencyFormatter și FieldNumberPercentFormatter sunt clase simple fără nicio dependență de o instanță Document. Le puteți folosi în orice context .NET 8+ ca formatori utilitari.
Care este diferența dintre FieldNumberCurrencyFormatter și FieldNumberPercentFormatter?
FieldNumberCurrencyFormatter formatează un număr ca sumă monetară fără multiplicare. FieldNumberPercentFormatter în multiplică intrarea cu 100 și adaugă sau prependă un simbol de procent.
Există o modalitate de a înlănțui mai mulți formatatori?
Nu există concatenare încorporată. Aplicați formatorii secvențial în cod.
Am nevoie de documentul PDF complet pentru a folosi aceste clase?
Nu. Formatoarele operează pe șiruri simple și returnează șiruri formatate. Ele nu necesită o instanță deschisă Document.