Slik jobber du med JavaScript-utvidelser i .NET

Slik jobber du med JavaScript-utvidelser i .NET

Aspose.PDF FOSS for .NET inkluderer server‑side implementasjoner av PDF‑JavaScript‑funksjonene AF_Date_Format, AF_Number_Format og AF_Percent_Format via FieldDateTimeFormatter, FieldNumberCurrencyFormatter og FieldNumberPercentFormatter‑klassene. Installer pakken med dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha og bruk disse klassene til å formatere AcroForm‑feltverdier på serveren uten å kreve en JavaScript‑motor.

Trinn-for-trinn guide

Steg 1: Installer pakken

Legg til Aspose.PDF FOSS i prosjektet ditt:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

Trinn 2: Importer nødvendige klasser

using Aspose.Pdf.Annotations.JavascriptExtensions;

Trinn 3: Formater en dato-/tidfeltverdi

FieldDateTimeFormatter.Format(dateFormat, dateValue) konverterer en rå datostreng i henhold til et Acrobat‑stil datoformatmønster. Dette tilsvarer PDF JavaScript AF_Date_Format‑funksjonen.

string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");

dateFormat-parameteren bruker Acrobat-datotokens (f.eks. mm, dd, yyyy, HH, MM). Når input dateValue ikke kan parses, returnerer metoden en tom streng.


Trinn 4: Formater et numerisk felt som valuta

FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formaterer en numerisk streng som en valutaverdi. Dette tilsvarer PDF JavaScript AF_Number_Format-funksjonen.

var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
    precision: 2,
    sepStyle: 0,
    negStyle: 0,
    currencySymbol: "$",
    isPrependCurrency: true,
    fieldValue: "1234.5");
  • precision – antall desimaler
  • sepStyle – tusenskilletegnstil (0 = komma, 1 = punktum, 2 = ingen)
  • negStyle – negativt tallstil (0 = parenteser, 1 = minusprefiks)
  • currencySymbol – valutategnet som streng
  • isPrependCurrency – true for å plassere symbolet før tallet
  • fieldValue – den rå numeriske strengen som skal formateres

Steg 5: Formater et numerisk felt som en prosent

FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formaterer en numerisk streng som en prosent, og multipliserer den rå verdien med 100 først. Dette tilsvarer PDF JavaScript AF_Percent_Format-funksjonen.

var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
    precision: 1,
    sepStyle: 0,
    isPrependPercent: false,
    fieldValue: "0.875");

Parametere:

  • precision - antall desimaler etter desimaltegnet
  • sepStyle - tusenskilletegnstil (0 = komma, 1 = punktum, 2 = ingen)
  • isPrependPercent - true for å sette %‑symbolet foran, false for å sette det etter
  • fieldValue - den rå numeriske strengen (formatet multipliserer med 100)

Vanlige problemer og løsninger

FieldDateTimeFormatter returnerer tom streng
Dette skjer når dateValue-argumentet ikke kan parses av datomønsteret i dateFormat. Acrobat-datotoken er forskjellige fra .NET DateTime-formatstrenger.

FieldNumberCurrencyFormatter produserer feil desimaltegn
Parameteren sepStyle styrer tusenskilletegnet. For å bruke et punktum som tusenskilletegn, angi sepStyle: 1.

FieldNumberPercentFormatter output er 100 ganger for stor
Formatteren multipliserer inngangsverdien med 100. Hvis fieldValue allerede representerer en prosentandel (f.eks. “87.5” i stedet for “0.875”), del på 100 før du kaller Format.

Navnerommet ble ikke funnet etter pakkeinstallasjon
Sørg for at du retter deg mot net8.0 eller nyere. JavascriptExtensions-namespace er kun tilgjengelig i Aspose.Pdf.Foss-pakken.

NullReferenceException på tomt fieldValue Å sende null eller en tom streng som fieldValue vil forårsake en parse‑unntak. Valider inn‑dataene før du kaller Format.

Ofte stilte spørsmål

Hva betyr «corresponds to AF_Date_Format»?

PDF AcroForm JavaScript bruker AF_Date_Format som den innebygde formateringsfunksjonen for datofelt. FieldDateTimeFormatter gjenskaper den samme formateringslogikken i .NET administrert kode slik at du kan bruke de samme feltformatstrengene uten å kjøre JavaScript.

Kan jeg bruke disse formatterne utenfor en PDF-dokumentkontekst?

Ja. FieldDateTimeFormatter, FieldNumberCurrencyFormatter og FieldNumberPercentFormatter er enkle klasser uten avhengighet til en Document‑instans. Du kan bruke dem i enhver .NET 8+‑kontekst som verktøyformaterere.

Hva er forskjellen mellom FieldNumberCurrencyFormatter og FieldNumberPercentFormatter?

FieldNumberCurrencyFormatter formaterer et tall som et pengebeløp uten multiplikasjon. FieldNumberPercentFormatter multipliserer inngangen med 100 og legger til eller setter inn et prosenttegn.

Finnes det en måte å kjede flere formaterere på?

Ingen innebygd kjeding er tilgjengelig. Påfør formaterere sekvensielt i kode.

Trenger jeg hele PDF-dokumentet for å bruke disse klassene?

Nei. Formatterne opererer på vanlige strenger og returnerer formaterte strenger. De krever ikke en åpen Document-instans.

Se også

 Norsk