Comment travailler avec les extensions JavaScript dans .NET
Aspose.PDF FOSS for .NET inclut des implémentations côté serveur des fonctions JavaScript PDF AF_Date_Format, AF_Number_Format et AF_Percent_Format via les classes FieldDateTimeFormatter, FieldNumberCurrencyFormatter et FieldNumberPercentFormatter. Installez le package avec dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha et utilisez ces classes pour formater les valeurs des champs AcroForm sur le serveur sans nécessiter de moteur JavaScript.
Guide étape par étape
Étape 1 : Installer le package
Ajoutez Aspose.PDF FOSS à votre projet :
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaÉtape 2 : Importer les classes requises
using Aspose.Pdf.Annotations.JavascriptExtensions;Étape 3 : Formater une valeur de champ Date/Heure
FieldDateTimeFormatter.Format(dateFormat, dateValue) convertit une chaîne de date brute selon un modèle de format de date de type Acrobat. Cela correspond à la fonction PDF JavaScript AF_Date_Format.
string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");Le paramètre dateFormat utilise les jetons de format de date Acrobat (par exemple, mm, dd, yyyy, HH, MM). Lorsque l’entrée dateValue ne peut pas être analysée, la méthode renvoie une chaîne vide.
Étape 4 : Formater un champ numérique en devise
FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formate une chaîne numérique en tant que valeur monétaire. Cela correspond à la fonction 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");Paramètres :
precision- nombre de décimalessepStyle- style du séparateur de milliers (0 = virgule, 1 = point, 2 = aucun)negStyle- style du nombre négatif (0 = parenthèses, 1 = préfixe moins)currencySymbol- chaîne du symbole monétaireisPrependCurrency- true pour placer le symbole avant le nombrefieldValue- chaîne numérique brute à formater
Étape 5 : Formater un champ numérique en pourcentage
FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formate une chaîne numérique en pourcentage, en multipliant d’abord la valeur brute par 100. Cela correspond à la fonction PDF JavaScript AF_Percent_Format.
var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
precision: 1,
sepStyle: 0,
isPrependPercent: false,
fieldValue: "0.875");Paramètres :
precision- nombre de décimales après le point décimalsepStyle- style du séparateur de milliers (0 = virgule, 1 = point, 2 = aucun)isPrependPercent- true pour préfixer le symbole %, false pour le suffixerfieldValue- la chaîne numérique brute (le formateur multiplie par 100)
Problèmes courants et solutions
FieldDateTimeFormatter renvoie une chaîne vide
Cela se produit lorsque l’argument dateValue ne peut pas être analysé par le modèle de date dans dateFormat. Les jetons de date Acrobat diffèrent des chaînes de format .NET DateTime.
FieldNumberCurrencyFormatter produit un séparateur décimal incorrect
Le paramètre sepStyle contrôle le séparateur des milliers. Pour utiliser un point comme séparateur des milliers, passez sepStyle: 1.
FieldNumberPercentFormatter renvoie une valeur 100 fois trop grande
Le formatteur multiplie la valeur d’entrée par 100. Si votre fieldValue représente déjà un pourcentage (par exemple “87.5” au lieu de “0.875”), divisez par 100 avant d’appeler Format.
Espace de noms introuvable après l’installation du package
Assurez-vous de cibler net8.0 ou une version ultérieure. L’espace de noms JavascriptExtensions n’est disponible que dans le package Aspose.Pdf.Foss.
NullReferenceException sur fieldValue vide
Passer null ou une chaîne vide comme fieldValue provoquera une exception d’analyse. Validez l’entrée avant d’appeler Format.
Foire aux questions
Que signifie “corresponds to AF_Date_Format” ?
PDF AcroForm JavaScript utilise AF_Date_Format comme fonction de formatage intégrée pour les champs de date. FieldDateTimeFormatter reproduit la même logique de formatage en code géré .NET afin que vous puissiez appliquer les mêmes chaînes de format de champ sans exécuter JavaScript.
Puis-je utiliser ces formateurs en dehors d’un contexte de document PDF ?
Oui. FieldDateTimeFormatter, FieldNumberCurrencyFormatter et FieldNumberPercentFormatter sont des classes simples sans dépendance à une instance Document. Vous pouvez les utiliser dans tout contexte .NET 8+ en tant que formatteurs utilitaires.
Quelle est la différence entre FieldNumberCurrencyFormatter et FieldNumberPercentFormatter ?
FieldNumberCurrencyFormatter formate un nombre en tant que montant monétaire sans multiplication. FieldNumberPercentFormatter multiplie l’entrée par 100 et ajoute ou préfixe un symbole de pourcentage.
Existe-t-il un moyen d’enchaîner plusieurs formatters ?
Aucun chaînage intégré n’est fourni. Appliquez les formatteurs séquentiellement dans le code.
Ai‑je besoin du document PDF complet pour utiliser ces classes ?
Non. Les formatteurs fonctionnent sur des chaînes simples et renvoient des chaînes formatées. Ils ne nécessitent pas d’instance Document ouverte.