Kā strādāt ar JavaScript paplašinājumiem .NET
Aspose.PDF FOSS for .NET ietver servera puses implementācijas PDF JavaScript AF_Date_Format, AF_Number_Format un AF_Percent_Format funkcijām, izmantojot FieldDateTimeFormatter, FieldNumberCurrencyFormatter un FieldNumberPercentFormatter klases. Instalējiet pakotni ar dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha un izmantojiet šīs klases, lai serverī formatētu AcroForm lauku vērtības, nepieprasot JavaScript dzini.
Rokasgrāmata soli pa solim
1. solis: instalēt pakotni
Pievienojiet Aspose.PDF FOSS savam projektam:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha2. solis: Importēt nepieciešamās klases
using Aspose.Pdf.Annotations.JavascriptExtensions;3. solis: Formatēt datuma/laika lauka vērtību
FieldDateTimeFormatter.Format(dateFormat, dateValue) pārvērš neapstrādātu datuma virkni atbilstoši Acrobat‑stila datuma formāta paraugam. Tas atbilst PDF JavaScript AF_Date_Format funkcijai.
string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");Parametrs dateFormat izmanto Acrobat datuma formāta tokenus (piemēram, mm, dd, yyyy, HH, MM). Ja ievades dateValue nevar parsēt, metode atgriež tukšu virkni.
4. solis: Formātēt skaitlisko lauku kā valūtu
FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formatē skaitlisku virkni kā valūtas vērtību. Tas atbilst PDF JavaScript AF_Number_Format funkcijai.
var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
precision: 2,
sepStyle: 0,
negStyle: 0,
currencySymbol: "$",
isPrependCurrency: true,
fieldValue: "1234.5");Parameters:
precision- decimālu vietu skaitssepStyle- tūkstošu atdalītāja stils (0 = komats, 1 = punkts, 2 = nav)negStyle- negatīvā skaitļa stils (0 = iekavas, 1 = mīnus prefikss)currencySymbol- valūtas simbols kā virkneisPrependCurrency- true, lai novietotu simbolu pirms skaitļafieldValue- neapstrādāta skaitliskā virkne, ko formatēt
5. solis: formatēt skaitlisko lauku kā procentu
FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formatē skaitlisku virkni kā procentu, sākotnēji reizinot neapstrādāto vērtību ar 100. Tas atbilst PDF JavaScript AF_Percent_Format funkcijai.
var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
precision: 1,
sepStyle: 0,
isPrependPercent: false,
fieldValue: "0.875");Parametri:
precision- ciparu skaits aiz decimālzīmessepStyle- tūkstošu atdalītāja stils (0 = komats, 1 = punkts, 2 = nav)isPrependPercent- true, lai pievienotu % simbolu priekšā, false, lai pievienotu beigāsfieldValue- neapstrādāta skaitliskā virkne (formatētājs reizinā ar 100)
Biežas problēmas un risinājumi
FieldDateTimeFormatter atgriež tukšu virkni
Tas notiek, ja dateValue arguments nevar tikt parsēts ar datuma modeli dateFormat. Acrobat datuma tokeni atšķiras no .NET DateTime formāta virkņu.
FieldNumberCurrencyFormatter izraisa nepareizu decimāldaļu atdalītāju
Parametrs sepStyle kontrolē tūkstošu atdalītāju. Lai izmantotu punktu kā tūkstošu atdalītāju, nododiet sepStyle: 1.
FieldNumberPercentFormatter izvade ir 100 reizes pārāk liela
Formātētājs reizinā ievades vērtību ar 100. Ja jūsu fieldValue jau pārstāv procentus (piemēram, “87.5” nevis “0.875”), daliet ar 100 pirms izsaukt Format.
Namespace not found after package install Pārliecinieties, ka mērķējat net8.0 vai jaunāku. JavascriptExtensions namespace ir pieejama tikai Aspose.Pdf.Foss paketē.
NullReferenceException tukšā fieldValue
Null vai tukša virkne kā fieldValue izraisīs parsēšanas izņēmumu. Pārbaudiet ievadi pirms izsaukt Format.
Biežāk uzdotie jautājumi
Ko nozīmē “corresponds to AF_Date_Format”?
PDF AcroForm JavaScript izmanto AF_Date_Format kā iebūvēto formatēšanas funkciju datuma laukiem. FieldDateTimeFormatter atkārto to pašu formatēšanas loģiku .NET pārvaldītā kodā, lai varētu izmantot tos pašus lauka formatēšanas virknes, neizpildot JavaScript.
Vai es varu izmantot šos formatētājus ārpus PDF dokumenta konteksta?
Jā. FieldDateTimeFormatter, FieldNumberCurrencyFormatter un FieldNumberPercentFormatter ir vienkāršas klases bez atkarības no Document instances. Jūs varat tās izmantot jebkurā .NET 8+ kontekstā kā utilītformētājus.
Kāda ir atšķirība starp FieldNumberCurrencyFormatter un FieldNumberPercentFormatter?
FieldNumberCurrencyFormatter formatē skaitli kā naudas summu bez reizināšanas. FieldNumberPercentFormatter reizinā ievadi ar 100 un pievieno vai pieprasa procenta simbolu sākumā vai beigās.
Vai ir veids, kā ķēdēt vairākus formatētājus?
Nav nodrošināta iebūvēta ķēde. Lietojiet formatētājus secīgi kodā.
Vai man ir vajadzīgs pilns PDF dokuments, lai izmantotu šīs klases?
Nē. Formātētāji darbojas ar vienkāršām virknēm un atgriež formatētas virknes. Viņiem nav nepieciešama atvērta Document instance.