Hoe te werken met JavaScript-extensies in .NET
Aspose.PDF FOSS for .NET bevat server‑side implementaties van de PDF JavaScript AF_Date_Format, AF_Number_Format en AF_Percent_Format functies via de FieldDateTimeFormatter, FieldNumberCurrencyFormatter en FieldNumberPercentFormatter klassen. Installeer het pakket met dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha en gebruik deze klassen om AcroForm‑veldwaarden op de server te formatteren zonder een JavaScript‑engine te vereisen.
Stapsgewijze handleiding
Stap 1: Installeer het pakket
Voeg Aspose.PDF FOSS toe aan uw project:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaStap 2: Vereiste klassen importeren
using Aspose.Pdf.Annotations.JavascriptExtensions;Stap 3: Formatteer een datum/tijd veldwaarde
FieldDateTimeFormatter.Format(dateFormat, dateValue) converteert een ruwe datumreeks volgens een Acrobat‑stijl datumopmaakpatroon. Dit komt overeen met de PDF JavaScript AF_Date_Format‑functie.
string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");De dateFormat-parameter gebruikt Acrobat‑datumformaat‑tokens (bijv. mm, dd, yyyy, HH, MM). Wanneer de invoer dateValue niet kan worden geparseerd, retourneert de methode een lege tekenreeks.
Stap 4: Een numeriek veld als valuta opmaken
FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formatteert een numerieke tekenreeks als een valutawaarde. Dit komt overeen met de PDF JavaScript AF_Number_Format‑functie.
var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
precision: 2,
sepStyle: 0,
negStyle: 0,
currencySymbol: "$",
isPrependCurrency: true,
fieldValue: "1234.5");precision- aantal decimalensepStyle- stijl van duizendtallen scheidingsteken (0 = komma, 1 = punt, 2 = geen)negStyle- stijl van negatieve getallen (0 = haakjes, 1 = minteken voorvoegsel)currencySymbol- de valutatekenreeksisPrependCurrency- true om het symbool vóór het getal te plaatsenfieldValue- de ruwe numerieke tekenreeks om te formatteren
Stap 5: Formatteer een numeriek veld als percentage
FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formatteert een numerieke string als een percentage, waarbij eerst de ruwe waarde met 100 wordt vermenigvuldigd. Dit komt overeen met de PDF JavaScript AF_Percent_Format-functie.
var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
precision: 1,
sepStyle: 0,
isPrependPercent: false,
fieldValue: "0.875");Parameters:
precision- aantal decimalen na de decimale puntsepStyle- stijl van duizendtallen scheidingsteken (0 = komma, 1 = punt, 2 = geen)isPrependPercent- true om het %‑symbool voor te plaatsen, false om achter te voegenfieldValue- de ruwe numerieke tekenreeks (de formatter vermenigvuldigt met 100)
Veelvoorkomende problemen en oplossingen
FieldDateTimeFormatter retourneert lege string
Dit gebeurt wanneer het dateValue-argument niet kan worden geparseerd door het datumpatroon in dateFormat. Acrobat‑datumtokens verschillen van .NET DateTime‑opmaakstrings.
FieldNumberCurrencyFormatter produceert verkeerd decimaal scheidingsteken
De sepStyle-parameter regelt het scheidingsteken voor duizendtallen. Om een punt als scheidingsteken voor duizendtallen te gebruiken, geef sepStyle: 1 door.
FieldNumberPercentFormatter output is 100x te groot
De formatter vermenigvuldigt de invoerwaarde met 100. Als uw fieldValue al een percentage weergeeft (bijv. “87.5” in plaats van “0.875”), deel dan door 100 voordat u Format aanroept.
Namespace niet gevonden na installatie van pakket
Zorg ervoor dat u target op net8.0 of hoger. De JavascriptExtensions-namespace is alleen beschikbaar in het Aspose.Pdf.Foss-pakket.
NullReferenceException bij leeg fieldValue
Het doorgeven van null of een lege string als fieldValue veroorzaakt een parse exception. Valideer de invoer voordat Format wordt aangeroepen.
Veelgestelde vragen
Wat betekent “corresponds to AF_Date_Format”?
PDF AcroForm JavaScript gebruikt AF_Date_Format als de ingebouwde opmaakfunctie voor datumvelden. FieldDateTimeFormatter reproduceert dezelfde opmaaklogica in .NET managed code zodat u dezelfde veldopmaak‑strings kunt toepassen zonder JavaScript uit te voeren.
Kan ik deze formatters buiten een PDF-documentcontext gebruiken?
Ja. FieldDateTimeFormatter, FieldNumberCurrencyFormatter en FieldNumberPercentFormatter zijn eenvoudige klassen zonder afhankelijkheid van een Document‑instantie. Je kunt ze in elke .NET 8+ context gebruiken als utility‑formatters.
Wat is het verschil tussen FieldNumberCurrencyFormatter en FieldNumberPercentFormatter?
FieldNumberCurrencyFormatter formatteert een getal als een geldbedrag zonder vermenigvuldiging. FieldNumberPercentFormatter vermenigvuldigt de invoer met 100 en voegt een procentteken toe of plaatst het ervoor.
Is er een manier om meerdere formatters te combineren?
Er is geen ingebouwde chaining beschikbaar. Pas formatters opeenvolgend toe in de code.
Heb ik het volledige PDF-document nodig om deze klassen te gebruiken?
Nee. De formatters werken op platte strings en geven geformatteerde strings terug. Ze vereisen geen open Document instantie.