如何使用 Aspose 维护或强制 PDF 中的货币格式
Posted
技术标签:
【中文标题】如何使用 Aspose 维护或强制 PDF 中的货币格式【英文标题】:How to maintain or force currency formatting in PDF with Aspose 【发布时间】:2013-07-09 20:21:16 【问题描述】:我正在使用 Aspose 从数据库中填充 PDF 文档中的字段。将值本身放入文档很容易:
form.FillField("PurchasePrice", PurchasePrice.ToString()); // PurchasePrice is decimal
但是,当我打开生成的 PDF 时,该字段仅显示为小数,即使 PDF 文件中的字段格式设置为带有分隔符样式和货币符号集的数字。
因此,1200.00 的值被显示为这样,尽管我预计它是 1,200.00 美元。如果我手动更改该字段,即删除尾随小数,该字段将更新并按预期以货币格式显示。
有没有办法使用 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 代码更改字段内容,通常使用 Adobe Acrobat 特定的 JS 函数。 PDF 库通常没有 JavaScript 解释器,更不用说支持 Adobe Acrobat 特定的 JS 函数了。因此,在填写字段之前,您应该在 C# 代码中适当地格式化要放入这些表单字段的文本。 感谢您的回复,@mkl。如前所述,我宁愿不走这条路,因为还有其他基于这些字段的计算(我想我可以更改计算以将字符串解析为小数......) - 你是否知道任何文档我可以运行的级别 javascript 会触发每个字段的击键(例如 doc.calculateNow(); 将用于所有计算)?再次感谢 【参考方案1】:看起来 Aspose.PDF 使用了不正确的小数分隔符,即“,”而不是“.”作为一种解决方法,您可以尝试更改您的 系统语言环境。
【讨论】:
以上是关于如何使用 Aspose 维护或强制 PDF 中的货币格式的主要内容,如果未能解决你的问题,请参考以下文章
使用 Aspose.Net 保存 PDF 文件大小不断增加? - 我该如何防止呢?