Com treballar amb extensions de JavaScript a .NET

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-alpha

Pas 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 decimals
  • sepStyle - 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 moneda
  • isPrependCurrency - true per col·locar el símbol abans del número
  • fieldValue - 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 decimal
  • sepStyle - 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 final
  • fieldValue - 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.

Vegeu també

 Català