我正在尝试使用iTextSharp来操作可填写的pdf表单模板。 IRS的可填写W4就是一个很好的源代码示例(不过,我将在真实解决方案中创作自己的表单):http://www.irs.gov/pub/irs-pdf/fw4.pdf
我需要:
我已经克服了PdfStamper必须创建的附加到pdf的常见问题 - 这在填写表单输入和添加元数据时工作正常。但是,如果我向PDF添加图像,则会导致非常令人失望的消息
此文档在Adobe Reader中启用了扩展功能。该文件 自创建以来已被更改并使用扩展功能 不再可用。等...
因此,无法再在Acrobat Reader中编辑表格。
以下是代码的高级示例:
PdfReader reader = new PdfReader(templateFile);
using (PdfStamper stamper = new PdfStamper(reader, new FileStream(outputFile, FileMode.Create), '\0', true))
{
// fill in some fields
AcroFields form = stamper.AcroFields;
form.SetField("Field1", "My Value");
form.SetField("Field2", "Another Value");
// add some metadata
Dictionary<String, String> info = reader.Info;
info.Add("SourceID", "1234567890");
stamper.MoreInfo = info;
// add a barcode image
PdfContentByte cb = stamper.GetOverContent(1);
Barcode39 code39ext = new Barcode39();
code39ext.Code = "1234567890";
code39ext.StartStopText = false;
code39ext.Extended = true;
iTextSharp.text.Image barcode = code39ext.CreateImageWithBarcode(cb, null, null);
barcode.ScalePercent(100);
barcode.SetAbsolutePosition(50, 500);
cb.AddImage(barcode)
stamper.Close();
}
主要问题:如上所述,字段完成和元数据部分工作正常。但是,添加条形码图像会破坏pdf的“扩展功能”。有没有办法可以添加不会破坏“扩展功能”的条形码图像?
答案 0 :(得分:0)
为了给别人提供答案,@ mkl是正确的。通过修改&#34;内容&#34;在pdf中,签名被破坏了。但是,可以填写表单,添加元数据,并将条形码添加到可填写的PDF中,只要&#34;扩展阅读器功能&#34;未启用。由于我们正在创作自己的表格,这对我们来说是一个有效的解决方案。