Я использую Aspose для заполнения полей в PDF-документе из базы данных. Получение самого значения в документ легко:Как сохранить форматирование форматирования в PDF с помощью Aspose
form.FillField("PurchasePrice", PurchasePrice.ToString()); // PurchasePrice is decimal
Однако, когда я открываю в результате PDF, поле появляется только в десятичной системе, даже если поле в файле PDF форматируется как число с Стиль разделителя и символ валюты.
Таким образом, значение 1200.00 отображается как таковое, хотя я ожидаю, что оно составит 1200 долларов США. Если я вручную изменю поле, то есть удаляю конечные десятичные числа, поле обновляется и отображается в формате валюты, как ожидалось.
Есть ли способ использовать Aspose/C# или Javascript для принудительного форматирования полей PDF?
Значение должно оставаться как числовое значение, так как другие расчеты зависят от него, так что я не могу что-то вроде этого:
form.FillField("PurchasePrice", string.Format("{0:c}", PurchasePrice.ToString()));
Я использую Aspose.Pdf версии 8.2.0.0 и .NET 4.5
Форматирование поля формы PDF, по существу, осуществляется с помощью кода JavaScript, который выполняется, когда пользователь нажал клавишу, покинул поле или в аналогичных ситуациях. Этот JS-код изменяет содержимое поля, чаще всего используя специальные функции JS Adobe Acrobat. В библиотеках PDF обычно нет интерпретаторов JavaScript, не говоря уже о поддержке специальных функций JS для Adobe Acrobat. Таким образом, перед заполнением полей вы должны форматировать текст, который вы хотите поместить в эти поля формы, соответствующим вашему C#. – mkl
Спасибо за ответ, @mkl. Как уже упоминалось, я бы предпочел не идти по этому маршруту, так как есть другие расчеты, основанные на этих полях (я полагаю, я мог бы изменить вычисления, чтобы проанализировать строку в десятичной ...) - знаете ли вы, что какой-либо документ javascript, который я мог бы запустить, чтобы вызвать каждое нажатие клавиши (например, doc.calculateNow(), будет выполняться для всех вычислений)? еще раз спасибо – Brett