您说您正在丢失所有格式。这导致假设您的表单包含在人类用户输入值时格式化字段的 JavaScript。
使用 iText 填写表单时,手动填写表单时触发的 JavaScript 方法不会执行。因此1.0
不会更改为100%
.
我认为这是一个错字:
fields.SetField("Pgo", 1.0 "Percentage");
这一行甚至没有编译。输入此行时,您的 IDE 应显示错误。即使我会在第二个和第三个参数之间添加缺少的逗号(假设1.0
and"Percentage"
是两个单独的参数),您也会收到错误消息,指出没有setField()
接受 a String
、 adouble
和 a 的方法String
。
有两种setField()
方法:
例如,当您这样做时:
fields.SetField("Pgo", "1.0", "100%");
iText 将显示 100%,但该字段的值为 1.0。
如果有人单击该字段,则可能会出现 1.0,以便最终用户可以更改该字段,例如更改为 0.5。手动输入的 0.5 是否显示为 50% 取决于是否存在格式化 JavaScript。
PS:这个问题也作为售前问题发布在我们 iText Software 的票务系统中。我正在关闭该票,以便该票不会被回答两次。顺便说一句:这个新问题只不过是对您之前的问题https://stackoverflow.com/questions/27276863/pdfstamper-remove-my-formats-in-my-form的重新讨论。这个问题不清楚。你为什么不理会我的澄清要求?当您第一次没有得到答案时,发布重复的问题是不习惯的。你应该更新你原来的问题。