Como trabalhar com extensões JavaScript em .NET

Como trabalhar com extensões JavaScript em .NET

Aspose.PDF FOSS for .NET includes server-side implementations of the PDF JavaScript AF_Date_Format, AF_Number_Format, and AF_Percent_Format functions via the FieldDateTimeFormatter, FieldNumberCurrencyFormatter, e FieldNumberPercentFormatter Instalar o pacote com: dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha e usar essas classes para formatar os valores de campo AcroForm no servidor sem exigir um motor JavaScript.

Guia passo a passo

Passo 1: Instalar o pacote

Adicionar Aspose.PDF FOSS ao seu projeto:

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

Passo 2: Importar as classes necessárias

using Aspose.Pdf.Annotations.JavascriptExtensions;

Passo 3: Formatar um valor de campo Data/Hora

FieldDateTimeFormatter.Format(dateFormat, dateValue) Converte uma string de data bruta de acordo com um padrão do formato da data no estilo Acrobat. Isto corresponde à função PDF JavaScript AF_Date_Format.

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

A Comissão dateFormat O parâmetro utiliza tokens de formato data Acrobat (por exemplo,., mm, dd, yyyy, HH, MM) Quando a entrada de dados é feita, o sistema dateValue não pode ser analisado, o método retorna uma cadeia vazia.


Passo 4: Formate um campo numérico como moeda

FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) Formata uma cadeia numérica como um valor de moeda. Isto corresponde à função 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");

Parâmetros:

  • precision - número de decimais
  • sepStyle - estilo de separador milhares (0 = vírgula, 1 = ponto, 2 = nenhum)
  • negStyle - estilo de número negativo (0 = parênteses, 1 = prefixo menos)
  • currencySymbol - a cadeia de símbolos da moeda
  • isPrependCurrency - verdadeiro para colocar o símbolo antes do número
  • fieldValue - a cadeia numérica bruta para formatar

Passo 5: Formate um campo numérico como porcentagem

FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) Formata uma cadeia numérica como um percentual, multiplicando o valor bruto por 100 primeiro. Isto corresponde à função PDF JavaScript AF_Percent_Format .

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

Parâmetros:

  • precision - número de decimais após o ponto decimal
  • sepStyle - estilo de separador milhares (0 = vírgula, 1 = ponto, 2 = nenhum)
  • isPrependPercent - verdadeiro para preencher o símbolo %, falso para anexar
  • fieldValue - a cadeia numérica bruta (o formatador multiplica por 100)

Problemas comuns e soluções

FieldDateTimeFormatter retorna uma sequência vazia Isto ocorre quando o dateValue argumento não pode ser analisado pelo padrão de data em dateFormat. Acrobat tokens de data diferem das cadeias do formato DateTime.

FieldNumberCurrencyFormatter produz separador decimal errado A Comissão sepStyle Para usar um ponto como o separador de milhares, passe sepStyle: 1.

FieldNumberPercentFormatter saída é 100x muito grande O formatador multiplica o valor de entrada por 100. Se seu fieldValue já representa uma percentagem (por exemplo, “87,5” em vez de “0,875”), dividido por 100 antes de chamar Format.

Espaço de nomes não encontrado após instalação do pacote Certifique-se de que você está visando net8.0 ou posterior. O espaço de nomes JavascriptExtensions só está disponível no pacote Aspose.Pdf.Foss .

NullReferenceExcepção no campo vazioValue Passar null ou uma cadeia vazia como: fieldValue Verifique a entrada antes de chamar Format.

Perguntas Frequentes

O que significa “corresponde ao AF_Date_Format”?

O PDF AcroForm JavaScript usa o AF_Date_Format como função de formatação integrada para campos de data. FieldDateTimeFormatter replica a mesma lógica de formatação no código gerenciado .NET para que você possa aplicar as mesmas strings de formato de campo sem executar JavaScript.

Posso usar estes formatadores fora de um contexto do documento PDF?

  • Sim, é verdade. FieldDateTimeFormatter, FieldNumberCurrencyFormatter, e FieldNumberPercentFormatter são classes simples sem dependência de um Document Você pode usá-los em qualquer contexto .NET 8 + como formatadores de utilitários.

Qual a diferença entre o Formato de campo NúmeroCurrency e o Formator de Campo NúmerosPercentual?

FieldNumberCurrencyFormatter Formata um número como uma quantia monetária sem multiplicação. FieldNumberPercentFormatter multiplica a entrada por 100 e adiciona ou antepõe um símbolo de percentagem.

Há uma maneira de encadear vários formatadores?

Não há encadeamento incorporado. Aplicar formatadores sequencialmente no código.

Preciso do documento PDF completo para usar estas aulas?

Não. Os formatadores operam em cordas simples e retornam strings formateados. Eles não exigem um open-source, mas apenas uma sequência de caracteres que são executadas por cada sistema. Document - Por exemplo.

Ver também:

 Português