Sådan arbejder du med JavaScript-udvidelser i .NET

Sådan arbejder du med JavaScript-udvidelser i .NET

Aspose.PDF FOSS for .NET inkluderer server‑side implementeringer af PDF‑JavaScript‑funktionerne AF_Date_Format, AF_Number_Format og AF_Percent_Format via klasserne FieldDateTimeFormatter, FieldNumberCurrencyFormatter og FieldNumberPercentFormatter. Installer pakken med dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha og brug disse klasser til at formatere AcroForm‑felternes værdier på serveren uden at kræve en JavaScript‑motor.

Trin-for-trin guide

Trin 1: Installer pakken

Tilføj Aspose.PDF FOSS til dit projekt:

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

Trin 2: Importer nødvendige klasser

using Aspose.Pdf.Annotations.JavascriptExtensions;

Trin 3: Formater en dato-/tidfeltværdi

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

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

Parameteren dateFormat bruger Acrobat‑datumsformat‑tokens (f.eks. mm, dd, yyyy, HH, MM). Når inputtet dateValue ikke kan parses, returnerer metoden en tom streng.


Trin 4: Formater et numerisk felt som valuta

FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formaterer en numerisk streng som en valutaværdi. Dette svarer til PDF JavaScript AF_Number_Format-funktionen.

var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
    precision: 2,
    sepStyle: 0,
    negStyle: 0,
    currencySymbol: "$",
    isPrependCurrency: true,
    fieldValue: "1234.5");
  • precision - antal decimaler
  • sepStyle - tusindseparatorstil (0 = komma, 1 = punktum, 2 = ingen)
  • negStyle - negativt tal stil (0 = parenteser, 1 = minus‑præfiks)
  • currencySymbol - valutategnsstrengen
  • isPrependCurrency - true for at placere symbolet før tallet
  • fieldValue - den rå numeriske streng, der skal formateres

Trin 5: Formater et numerisk felt som en procentdel

FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formaterer en numerisk streng som en procent, ved først at multiplicere den rå værdi med 100. Dette svarer til PDF JavaScript AF_Percent_Format-funktionen.

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

Parametre:

  • precision - antal decimaler efter decimaltegnet
  • sepStyle - tusindseparatorstil (0 = komma, 1 = punktum, 2 = ingen)
  • isPrependPercent - true for at sætte %‑symbolet foran, false for at sætte det efter
  • fieldValue - den rå numeriske streng (formatteren multiplicerer med 100)

Almindelige problemer og rettelser

FieldDateTimeFormatter returnerer en tom streng
Dette opstår, når dateValue-argumentet ikke kan parses af datamønsteret i dateFormat. Acrobat-datotokens adskiller sig fra .NET DateTime-formatstrenge.

FieldNumberCurrencyFormatter producerer forkert decimalseparator
Parameteren sepStyle styrer tusindtalsseparatoren. For at bruge et punktum som tusindtalsseparator, send sepStyle: 1.

FieldNumberPercentFormatter output er 100x for stor
Formatteren multiplicerer inputværdien med 100. Hvis din fieldValue allerede repræsenterer en procent (f.eks. “87.5” i stedet for “0.875”), skal du dividere med 100 før du kalder Format.

Namespace not found after package install Sørg for, at du målretter net8.0 eller senere. JavascriptExtensions-namespace er kun tilgængelig i Aspose.Pdf.Foss-pakken.

NullReferenceException ved tomt fieldValue At videregive null eller en tom streng som fieldValue vil forårsage en parse‑undtagelse. Valider inputtet, før du kalder Format.

Ofte stillede spørgsmål

Hvad betyder “corresponds to AF_Date_Format”?

PDF AcroForm JavaScript bruger AF_Date_Format som den indbyggede formateringsfunktion for datofelter. FieldDateTimeFormatter replikerer den samme formateringslogik i .NET managed code, så du kan anvende de samme feltformatstrenge uden at udføre JavaScript.

Kan jeg bruge disse formateringsværktøjer uden for en PDF-dokumentkontekst?

Ja. FieldDateTimeFormatter, FieldNumberCurrencyFormatter og FieldNumberPercentFormatter er enkle klasser uden afhængighed af en Document‑instans. Du kan bruge dem i enhver .NET 8+ kontekst som hjælpeformatere.

Hvad er forskellen mellem FieldNumberCurrencyFormatter og FieldNumberPercentFormatter?

FieldNumberCurrencyFormatter formaterer et tal som et pengebeløb uden multiplikation. FieldNumberPercentFormatter multiplicerer inputtet med 100 og tilføjer eller placerer et procenttegn foran eller efter.

Er der en måde at kæde flere formattere sammen?

Ingen indbygget kædning er tilgængelig. Anvend formateringsfunktioner sekventielt i koden.

Skal jeg have hele PDF-dokumentet for at bruge disse klasser?

Nej. Formatterne opererer på almindelige strenge og returnerer formaterede strenge. De kræver ikke en åben Document-instans.

Se også

 Dansk