Com treballar amb extensions de JavaScript a .NET
Aspose.PDF FOSS per a .NET inclou implementacions del costat del servidor de les funcions PDF JavaScript AF_Date_Format, AF_Number_Format i AF_Percent_Format mitjançant les classes FieldDateTimeFormatter, FieldNumberCurrencyFormatter i FieldNumberPercentFormatter. Instal·leu el paquet amb dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha i utilitzeu aquestes classes per formatar els valors dels camps AcroForm al servidor sense requerir un motor JavaScript.
Guia pas a pas
Pas 1: Instal·la el paquet
Afegeix Aspose.PDF FOSS al teu projecte:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaPas 2: Importa les classes necessàries
using Aspose.Pdf.Annotations.JavascriptExtensions;Pas 3: Formateu un valor de camp de data/hora
FieldDateTimeFormatter.Format(dateFormat, dateValue) converteix una cadena de data en brut segons un patró de format de data d’estil Acrobat. Això correspon a la funció PDF JavaScript AF_Date_Format.
string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");El paràmetre dateFormat utilitza tokens de format de data d’Acrobat (p. ex., mm, dd, yyyy, HH, MM). Quan l’entrada dateValue no es pot analitzar, el mètode retorna una cadena buida.
Pas 4: Formateu un camp numèric com a moneda
FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formata una cadena numèrica com a valor de moneda. Això correspon a la funció PDF JavaScript AF_Number_Format.
var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
precision: 2,
sepStyle: 0,
negStyle: 0,
currencySymbol: "$",
isPrependCurrency: true,
fieldValue: "1234.5");precision- nombre de decimalssepStyle- estil del separador de milers (0 = coma, 1 = punt, 2 = cap)negStyle- estil del número negatiu (0 = parèntesis, 1 = prefix de menys)currencySymbol- cadena del símbol de monedaisPrependCurrency- true per col·locar el símbol abans del númerofieldValue- la cadena numèrica en brut a formatar
Pas 5: Formata un camp numèric com a percentatge
FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formatea una cadena numèrica com a percentatge, multiplicant primer el valor brut per 100. Això correspon a la funció PDF JavaScript AF_Percent_Format.
var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
precision: 1,
sepStyle: 0,
isPrependPercent: false,
fieldValue: "0.875");Paràmetres:
precision- nombre de decimals després del punt decimalsepStyle- estil del separador de milers (0 = coma, 1 = punt, 2 = cap)isPrependPercent- true per afegir el símbol % al principi, false per afegir-lo al finalfieldValue- la cadena numèrica en brut (el formatador multiplica per 100)
Problemes comuns i solucions
FieldDateTimeFormatter retorna una cadena buida
Això ocorre quan l’argument dateValue no es pot analitzar amb el patró de data a dateFormat. Els tokens de data d’Acrobat difereixen de les cadenes de format .NET DateTime.
FieldNumberCurrencyFormatter produeix separador decimal incorrecte
El paràmetre sepStyle controla el separador de milers. Per utilitzar un punt com a separador de milers, passeu sepStyle: 1.
FieldNumberPercentFormatter output is 100x too large
El formatador multiplica el valor d’entrada per 100. Si el vostre fieldValue ja representa un percentatge (p. ex., “87.5” en lloc de “0.875”), dividiu per 100 abans de cridar a Format.
Espai de noms no trobat després de la instal·lació del paquet
Assegureu-vos que esteu apuntant a net8.0 o posterior. L’espai de noms JavascriptExtensions només està disponible al paquet Aspose.Pdf.Foss.
NullReferenceException amb fieldValue buit
Passar null o una cadena buida com a fieldValue provocarà una excepció d’anàlisi. Valideu l’entrada abans de cridar Format.
Preguntes freqüents
Què significa “corresponds to AF_Date_Format”?
PDF AcroForm JavaScript utilitza AF_Date_Format com a funció de format incorporada per als camps de data. FieldDateTimeFormatter replica la mateixa lògica de format en codi gestionat .NET perquè puguis aplicar les mateixes cadenes de format de camp sense executar JavaScript.
Puc utilitzar aquests formatadors fora del context d’un document PDF?
Sí. FieldDateTimeFormatter, FieldNumberCurrencyFormatter i FieldNumberPercentFormatter són classes senzilles sense cap dependència d’una instància Document. Podeu utilitzar‑les en qualsevol context .NET 8+ com a formatadors d’utilitat.
Quina és la diferència entre FieldNumberCurrencyFormatter i FieldNumberPercentFormatter?
FieldNumberCurrencyFormatter formata un número com una quantitat monetària sense multiplicació. FieldNumberPercentFormatter multiplica l’entrada per 100 i afegeix o anteposa un símbol de percentatge.
Hi ha alguna manera d’encadenar múltiples formatadors?
No s’ofereix encadenament integrat. Apliqueu els formatadors seqüencialment al codi.
Necessito el document PDF complet per utilitzar aquestes classes?
No. Els formatadors operen sobre cadenes simples i retornen cadenes formatades. No requereixen una instància oberta Document.