itextpdf acrofields格式为百分比

时间:2014-12-29 20:34:44

标签: itextpdf

我使用ITextPdf feom c#代码。 我使用acrofields填充带有数据的表单。我正在丢失格式。

Stream os = new FileStream(PDFPath, FileMode.CreateNew);
PdfReader reader = new PdfReader(memIO);
PdfStamper stamper = new PdfStamper(reader, os, '9', true);
AcroFields fields = stamper.AcroFields;
fields.SetField("Pgo", 1.0  "Percentage");

我做错了什么?

1 个答案:

答案 0 :(得分:0)

你说你丢失了所有的格式。这导致假设您的表单包含JavaScript,当人类用户输入值时,它会格式化字段。

使用iText填写表单时,不会执行手动填写表单时触发的JavaScript方法。因此1.0不会更改为100%

我认为这是一个错字:

fields.SetField("Pgo", 1.0  "Percentage");

这行甚至没有编译。键入此行时,IDE应显示错误。即使我在第二个和第三个参数之间添加缺少的逗号(假设1.0"Percentage"是两个单独的参数),您会收到一条错误消息,指出没有setField()接受StringdoubleString

的方法

有两种setField()方法:

例如,当你这样做时:

fields.SetField("Pgo", "1.0", "100%");

iText将显示100%,但该字段的值将为1.0。

如果有人点击该字段,则可能会出现1.0,以便最终用户可以更改字段,例如更改为0.5。它取决于格式化JavaScript的存在,无论这个手动输入的0.5是否将显示为50%。

P.S。:此问题也在iText Software的售票系统中作为售前问题发布。我正在关闭那张票,这样票不会被回答两次。顺便说一下:这个新的问题只不过是对前一个问题https://stackoverflow.com/questions/27276863/pdfstamper-remove-my-formats-in-my-form的重复。那个问题不清楚。你为什么忽略我澄清的要求?当您第一次没有得到答案时,发布重复的问题并不是自定义的。您应该更新原始问题。