Come lavorare con le estensioni JavaScript in .NET

Come lavorare con le estensioni JavaScript in .NET

Aspose.PDF FOSS for .NET include implementazioni lato server delle funzioni PDF JavaScript AF_Date_Format, AF_Number_Format e AF_Percent_Format tramite le classi FieldDateTimeFormatter, FieldNumberCurrencyFormatter e FieldNumberPercentFormatter. Installa il pacchetto con dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha e utilizza queste classi per formattare i valori dei campi AcroForm sul server senza richiedere un motore JavaScript.

Guida passo-passo

Passo 1: Installa il pacchetto

Aggiungi Aspose.PDF FOSS al tuo progetto:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

Passo 2: Importa le classi necessarie

using Aspose.Pdf.Annotations.JavascriptExtensions;

Passo 3: Formattare un valore di campo Data/Ora

FieldDateTimeFormatter.Format(dateFormat, dateValue) converte una stringa di data grezza secondo un modello di formato data in stile Acrobat. Questo corrisponde alla funzione PDF JavaScript AF_Date_Format.

string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");

Il parametro dateFormat utilizza i token di formato data di Acrobat (ad es., mm, dd, yyyy, HH, MM). Quando l’input dateValue non può essere analizzato, il metodo restituisce una stringa vuota.


Passo 4: Formatta un campo numerico come valuta

FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) formatta una stringa numerica come valore di valuta. Questo corrisponde alla funzione 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 - numero di cifre decimali
  • sepStyle - stile del separatore delle migliaia (0 = virgola, 1 = punto, 2 = nessuno)
  • negStyle - stile dei numeri negativi (0 = parentesi, 1 = prefisso meno)
  • currencySymbol - stringa del simbolo di valuta
  • isPrependCurrency - true per posizionare il simbolo prima del numero
  • fieldValue - stringa numerica grezza da formattare

Passo 5: Formatta un campo numerico come percentuale

FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) formatta una stringa numerica come percentuale, moltiplicando prima il valore grezzo per 100. Questo corrisponde alla funzione PDF JavaScript AF_Percent_Format.

var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
    precision: 1,
    sepStyle: 0,
    isPrependPercent: false,
    fieldValue: "0.875");

Parametri:

  • precision - numero di cifre decimali dopo il punto decimale
  • sepStyle - stile del separatore delle migliaia (0 = virgola, 1 = punto, 2 = nessuno)
  • isPrependPercent - true per anteporre il simbolo %, false per aggiungere alla fine
  • fieldValue - stringa numerica grezza (il formattatore moltiplica per 100)

Problemi comuni e soluzioni

FieldDateTimeFormatter restituisce stringa vuota
Questo si verifica quando l’argomento dateValue non può essere analizzato dal modello di data in dateFormat. I token di data di Acrobat differiscono dalle stringhe di formato .NET DateTime.

FieldNumberCurrencyFormatter genera un separatore decimale errato
Il parametro sepStyle controlla il separatore delle migliaia. Per utilizzare un punto come separatore delle migliaia, passare sepStyle: 1.

FieldNumberPercentFormatter restituisce un valore 100 volte troppo grande
Il formatter moltiplica il valore di input per 100.
Se il tuo fieldValue rappresenta già una percentuale (ad esempio, “87.5” invece di “0.875”), dividere per 100 prima di chiamare Format.

Namespace non trovato dopo l’installazione del pacchetto
Assicurati di mirare a net8.0 o versioni successive. Lo spazio dei nomi JavascriptExtensions è disponibile solo nel pacchetto Aspose.Pdf.Foss.

NullReferenceException su fieldValue vuoto
Passare null o una stringa vuota come fieldValue causerà un’eccezione di parsing. Validare l’input prima di chiamare Format.

Domande frequenti

Cosa significa “corresponds to AF_Date_Format”?

PDF AcroForm JavaScript utilizza AF_Date_Format come funzione di formattazione integrata per i campi data. FieldDateTimeFormatter replica la stessa logica di formattazione in codice gestito .NET in modo da poter applicare le stesse stringhe di formattazione dei campi senza eseguire JavaScript.

Posso usare questi formattatori al di fuori di un contesto di documento PDF?

Sì. FieldDateTimeFormatter, FieldNumberCurrencyFormatter e FieldNumberPercentFormatter sono classi semplici senza dipendenza da un’istanza Document. Puoi usarle in qualsiasi contesto .NET 8+ come formattatori di utilità.

Qual è la differenza tra FieldNumberCurrencyFormatter e FieldNumberPercentFormatter?

FieldNumberCurrencyFormatter formatta un numero come importo monetario senza moltiplicazione. FieldNumberPercentFormatter moltiplica l’input per 100 e aggiunge o antepone un simbolo percentuale.

C’è un modo per concatenare più formattatori?

Non è fornita alcuna concatenazione integrata. Applica i formattatori in sequenza nel codice.

Ho bisogno del documento PDF completo per utilizzare queste classi?

No. I formattatori operano su stringhe semplici e restituiscono stringhe formattate. Non richiedono un’istanza Document aperta.

Vedi anche

 Italiano