保存时,iTextSharp复选框将以PDF格式消失

时间:2018-03-29 12:01:16

标签: c# pdf checkbox itext acrobat

我正在使用iTextSharp在我的模板上用值填充我的表单字段。 其中一些字段应该展平,以便用户无法编辑它。 其余字段应由用户填写,我的程序可以读出数据并将其插入数据库。

我的解决方案适用于Abobe Reader DC,但我在使用Adobe Reader X时遇到问题。无法在客户端上更新版本。

所以我在PDF模板中启用了使用权限。问题是使用iTextSharp我必须在PdfStamper上启用追加。如果启用此选项,则由于文档上的Adobe签名,无法展平表单的一部分。

现在我有以下想法:

我将模板分成两个文件。第一个文档使用我的代码填充,Formflattening也是如此。

以下是代码:

MemoryStream outstream = new MemoryStream();

Document document = new Document();
PdfSmartCopy writer = new PdfSmartCopy(document, outstream);
document.Open();

//newFileStream is the flattend Form
pdfReader = new PdfReader(newFileStream.ToArray());
writer.AddDocument(pdfReader);

PdfReader reader = new PdfReader(Properties.Resources.PdfForm);
writer.AddDocument(reader);

reader.Close();
writer.Close();
document.Close();

return outstream.ToArray();

现在我将文档与我的第二个模板合并并保存,然后我就拥有了我想要的文档。第一页是'readonly',第二页有formfields。

我现在的问题是用户可以填写文档(复选框和文本框),但如果用户保存文档,则填充的复选框将消失。因此,如果用户向我发回文档,则其中没有复选框。

我不明白为什么只有复选框消失。

0 个答案:

没有答案