Comment travailler avec les extensions JavaScript dans .NET

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écimales
  • sepStyle - 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étaire
  • isPrependCurrency - true pour placer le symbole avant le nombre
  • fieldValue - 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écimal
  • sepStyle - style du séparateur de milliers (0 = virgule, 1 = point, 2 = aucun)
  • isPrependPercent - true pour préfixer le symbole %, false pour le suffixer
  • fieldValue - 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.

Voir aussi

 Français