Hogyan dolgozzunk JavaScript kiterjesztésekkel a .NET-ben
Aspose.PDF FOSS for .NET tartalmaz szerveroldali megvalósításokat a PDF JavaScript AF_Date_Format, AF_Number_Format és AF_Percent_Format függvényekhez a FieldDateTimeFormatter, FieldNumberCurrencyFormatter és FieldNumberPercentFormatter osztályokon keresztül. Telepítse a csomagot a dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha segítségével, és használja ezeket az osztályokat az AcroForm mezőértékek szerveren történő formázásához JavaScript motor nélkül.
Lépésről‑lépésre útmutató
1. lépés: A csomag telepítése
Adja hozzá az Aspose.PDF FOSS-t a projektjéhez:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha2. lépés: Szükséges osztályok importálása
using Aspose.Pdf.Annotations.JavascriptExtensions;3. lépés: Dátum/idő mezőérték formázása
FieldDateTimeFormatter.Format(dateFormat, dateValue) nyers dátumkarakterláncot konvertál egy Acrobat‑stílusú dátumformátum‑minta szerint. Ez megfelel a PDF JavaScript AF_Date_Format függvénynek.
string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");A dateFormat paraméter az Acrobat dátumformátum tokeneket használja (például mm, dd, yyyy, HH, MM). Ha a bemeneti dateValue nem értelmezhető, a metódus üres karakterláncot ad vissza.
4. lépés: Numerikus mező formázása pénznemként
FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formáz egy numerikus karakterláncot pénznemértékként. Ez megfelel a PDF JavaScript AF_Number_Format függvénynek.
var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
precision: 2,
sepStyle: 0,
negStyle: 0,
currencySymbol: "$",
isPrependCurrency: true,
fieldValue: "1234.5");Parameters:
precision- tizedesjegyek számasepStyle- ezres elválasztó stílusa (0 = vessző, 1 = pont, 2 = nincs)negStyle- negatív szám stílusa (0 = zárójelek, 1 = mínusz előtag)currencySymbol- a pénznem szimbólum karakterláncaisPrependCurrency- igaz, ha a szimbólumot a szám elé kell helyeznifieldValue- a formázandó nyers numerikus karakterlánc
5. lépés: Numerikus mező formázása százalékos értékként
FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formáz egy numerikus karakterláncot százalékos értékként, először a nyers értéket 100-zal megszorozva. Ez megfelel a PDF JavaScript AF_Percent_Format függvénynek.
var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
precision: 1,
sepStyle: 0,
isPrependPercent: false,
fieldValue: "0.875");Parameters:
precision- a tizedespont után lévő tizedesjegyek számasepStyle- ezreselválasztó stílusa (0 = vessző, 1 = pont, 2 = nincs)isPrependPercent- true, ha a % jelet előre kell tenni, false, ha a végérefieldValue- a nyers numerikus karakterlánc (a formázó 100-zal szoroz)
Általános problémák és megoldások
FieldDateTimeFormatter üres karakterláncot ad vissza
Ez akkor fordul elő, amikor a dateValue argumentumot nem lehet értelmezni a dateFormat dátummintája szerint. Az Acrobat dátumjelek eltérnek a .NET DateTime formátumkarakterláncoktól.
FieldNumberCurrencyFormatter hibás tizedes elválasztót állít elő
A sepStyle paraméter szabályozza az ezreselválasztót. A pont ezreselválasztóként való használatához adja át a sepStyle: 1 paramétert.
FieldNumberPercentFormatter output is 100x too large
A formázó a bemeneti értéket 100-zal szorozza. Ha a fieldValue már százalékot ábrázol (például “87.5” a “0.875” helyett), oszd el 100-zal a Format hívása előtt.
Namespace not found after package install Győződjön meg arról, hogy a net8.0 vagy újabb verziót célozza. A JavascriptExtensions névtér csak az Aspose.Pdf.Foss csomagban érhető el.
NullReferenceException üres fieldValue esetén
A null vagy üres karakterlánc átadása fieldValue‑ként parse kivételt okoz. Ellenőrizze a bemenetet a Format hívása előtt.
Gyakran Ismételt Kérdések
Mit jelent a „corresponds to AF_Date_Format”?
A PDF AcroForm JavaScript az AF_Date_Format beépített formázó függvényt használja a dátummezők formázásához. FieldDateTimeFormatter ugyanazt a formázási logikát valósítja meg .NET managed kódban, így ugyanazokat a mezőformátum-karakterláncokat alkalmazhatja JavaScript végrehajtása nélkül.
Használhatom ezeket a formázókat a PDF dokumentum kontextusán kívül?
Igen. FieldDateTimeFormatter, FieldNumberCurrencyFormatter és FieldNumberPercentFormatter egyszerű osztályok, amelyek nem függnek egy Document példánytól. Használhatja őket bármilyen .NET 8+ környezetben segédformázóként.
Mi a különbség a FieldNumberCurrencyFormatter és a FieldNumberPercentFormatter között?
FieldNumberCurrencyFormatter formáz egy számot pénzösszegként szorzás nélkül. FieldNumberPercentFormatter szorozza a bemenetet 100-zal, és hozzáfűzi vagy eléhelyezi a százalékjelet.
Van mód több formázó láncolására?
Nincs beépített láncolás. Alkalmazza a formázókat sorban a kódban.
Szükségem van a teljes PDF dokumentumra ahhoz, hogy ezeket az osztályokat használjam?
Nem. A formázók egyszerű karakterláncokon működnek, és formázott karakterláncokat adnak vissza. Nem igényelnek nyitott Document példányt.