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-alphaPasso 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 decimaissepStyle- 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 moedaisPrependCurrency- verdadeiro para colocar o símbolo antes do númerofieldValue- 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 decimalsepStyle- estilo de separador milhares (0 = vírgula, 1 = ponto, 2 = nenhum)isPrependPercent- verdadeiro para preencher o símbolo %, falso para anexarfieldValue- 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, eFieldNumberPercentFormattersão classes simples sem dependência de umDocumentVocê 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.