2013-07-09 2 views
0

Я использую 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

+0

Форматирование поля формы PDF, по существу, осуществляется с помощью кода JavaScript, который выполняется, когда пользователь нажал клавишу, покинул поле или в аналогичных ситуациях. Этот JS-код изменяет содержимое поля, чаще всего используя специальные функции JS Adobe Acrobat. В библиотеках PDF обычно нет интерпретаторов JavaScript, не говоря уже о поддержке специальных функций JS для Adobe Acrobat. Таким образом, перед заполнением полей вы должны форматировать текст, который вы хотите поместить в эти поля формы, соответствующим вашему C#. – mkl

+0

Спасибо за ответ, @mkl. Как уже упоминалось, я бы предпочел не идти по этому маршруту, так как есть другие расчеты, основанные на этих полях (я полагаю, я мог бы изменить вычисления, чтобы проанализировать строку в десятичной ...) - знаете ли вы, что какой-либо документ javascript, который я мог бы запустить, чтобы вызвать каждое нажатие клавиши (например, doc.calculateNow(), будет выполняться для всех вычислений)? еще раз спасибо – Brett

ответ

0

Похоже, что Aspose.PDF использует неправильный десятичный разделитель, то есть ',' вместо '. 'В качестве обходного пути вы можете попробовать изменить Системный каталог.