Kuinka työskennellä JavaScript-laajennusten kanssa .NET-ympäristössä
Aspose.PDF FOSS for .NET sisältää palvelinpuolen toteutukset PDF JavaScript -funktioille AF_Date_Format, AF_Number_Format ja AF_Percent_Format FieldDateTimeFormatter, FieldNumberCurrencyFormatter ja FieldNumberPercentFormatter luokkien kautta. Asenna paketti dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha ja käytä näitä luokkia muotoilemaan AcroForm-kenttien arvot palvelimella ilman JavaScript-moottoria.
Vaiheittainen opas
Vaihe 1: Asenna paketti
Lisää Aspose.PDF FOSS projektiisi:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaVaihe 2: Tuo vaaditut luokat
using Aspose.Pdf.Annotations.JavascriptExtensions;Vaihe 3: Muotoile päivämäärä/aika -kentän arvo
FieldDateTimeFormatter.Format(dateFormat, dateValue) muuntaa raakapäivämäärämerkkijonon Acrobat-tyylisen päivämäärämuotoilumallin mukaisesti. Tämä vastaa PDF JavaScript AF_Date_Format -funktiota.
string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");dateFormat-parametri käyttää Acrobat-päivämäärämuodon tunnisteita (esim. mm, dd, yyyy, HH, MM). Kun syötettä dateValue ei voida jäsentää, metodi palauttaa tyhjän merkkijonon.
Vaihe 4: Muotoile numeerinen kenttä valuutaksi
FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) muotoilee numeerisen merkkijonon valuuttana. Tämä vastaa PDF JavaScript AF_Number_Format -funktiota.
var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
precision: 2,
sepStyle: 0,
negStyle: 0,
currencySymbol: "$",
isPrependCurrency: true,
fieldValue: "1234.5");Parametrit:
precision- desimaalien määräsepStyle- tuhaterottimen tyyli (0 = pilkku, 1 = piste, 2 = ei mitään)negStyle- negatiivisen luvun tyyli (0 = sulkeet, 1 = miinus etuliite)currencySymbol- valuuttasymbolin merkkijonoisPrependCurrency- true jos symboli sijoitetaan luvun eteenfieldValue- muotoiltava raaka numeerinen merkkijono
Vaihe 5: Muotoile numeerinen kenttä prosenttiosuutena
FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) muotoilee numeerisen merkkijonon prosenttimuotoon, kertomalla raaka-arvon ensin 100:lla. Tämä vastaa PDF JavaScript AF_Percent_Format -funktiota.
var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
precision: 1,
sepStyle: 0,
isPrependPercent: false,
fieldValue: "0.875");Parametrit:
precision- desimaalien määrä desimaalipisteen jälkeensepStyle- tuhaterottimen tyyli (0 = pilkku, 1 = piste, 2 = ei mitään)isPrependPercent- true lisättäväksi %-symbolin eteen, false lisättäväksi peräänfieldValue- raaka numeerinen merkkijono (muotoilija kertoo 100:lla)
Yleisiä ongelmia ja korjauksia
FieldDateTimeFormatter palauttaa tyhjän merkkijonon
Tämä tapahtuu, kun dateValue-argumenttia ei voida jäsentää dateFormat-päivämääräkaavalla. Acrobatin päivämäärämerkit eroavat .NET DateTime -muotoilumerkeistä.
FieldNumberCurrencyFormatter tuottaa väärän desimaalierottimensepStyle-parametri ohjaa tuhaterottimia. Käyttääksesi pistettä tuhaterottimena, anna sepStyle: 1.
FieldNumberPercentFormatter -tuloste on 100‑kertainen liian suuri
Muotoilija kerrottaa syötteen arvon 100:lla. Jos fieldValue jo edustaa prosenttia (esim. “87,5” eikä “0,875”), jaa 100:lla ennen Format-kutsua.
Nimiavaruus ei löydy paketin asennuksen jälkeen Varmista, että kohdistat net8.0:een tai uudempiin. JavascriptExtensions-nimiavaruus on saatavilla vain Aspose.Pdf.Foss-paketissa.
NullReferenceException tyhjässä fieldValue:ssa
Nullin tai tyhjän merkkijonon antaminen parametrina fieldValue aiheuttaa jäsennysvirheen. Vahvista syöte ennen Format-funktion kutsumista.
Usein kysytyt kysymykset
Mitä tarkoittaa “corresponds to AF_Date_Format”?
PDF AcroForm JavaScript käyttää AF_Date_Format -funktiota sisäänrakennettuna muotoilufunktiona päivämääräkentille. FieldDateTimeFormatter toistaa saman muotoilulogikan .NET hallitussa koodissa, jotta voit käyttää samoja kentän muotoilumerkkejä ilman JavaScriptin suorittamista.
Voinko käyttää näitä muotoilijoita PDF-asiakirjan kontekstin ulkopuolella?
Kyllä. FieldDateTimeFormatter, FieldNumberCurrencyFormatter ja FieldNumberPercentFormatter ovat tavallisia luokkia, joilla ei ole riippuvuutta Document-instanssista. Voit käyttää niitä missä tahansa .NET 8+ -kontekstissa apuformaatereina.
Mikä on ero FieldNumberCurrencyFormatterin ja FieldNumberPercentFormatterin välillä?
FieldNumberCurrencyFormatter muotoilee numeron rahamääräksi ilman kertolaskua. FieldNumberPercentFormatter kertoo syötteen 100:lla ja lisää prosenttimerkin perään tai eteen.
Onko tapa ketjuttaa useita muotoilijoita?
Sisäänrakennettua ketjuttamista ei ole tarjolla. Käytä muotoilijoita peräkkäin koodissa.
Tarvitseeko minun käyttää koko PDF-asiakirjaa näiden luokkien käyttämiseen?
Ei. Muotoilijat toimivat tavallisilla merkkijonoilla ja palauttavat muotoiltuja merkkijonoja. Ne eivät vaadi avointa Document-instanssia.