[PDF]

背景

目标是通过 iTextSharp 读取 PDF 模板,填充内容后以生成新 PDF 文件。
利用 福昕PDF编辑器个人版 可以获取到 RadioButtonList 的组名,但是获取不到每一个 RadioButton 的 Value,因而无法进一步对单选框控件赋值。

解决

使用 Adobe LiveCycle Designer 可以读取到 PDF 表单设计元素,找到对应的 RadioBUttonList 元素,即可找到对应的 Value。

范例

var templateFile = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + @"	emplate.pdf";
using (var reader = new PdfReader(templateFile))
{
	var tempPdf = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + string.Format(@"output{0}.pdf", Guid.NewGuid());
	using (var stamper = new PdfStamper(reader, new FileStream(tempPdf, FileMode.Create)))
	{
		stamper.SetEncryption(null, null, PdfWriter.AllowCopy | PdfWriter.AllowPrinting, true);
		stamper.Writer.CloseStream = false;
		var form = stamper.AcroFields;

		form.SetField("form1[0].#subform[0].name[0]", "UserName");
		form.SetField("form1[0].#subform[0].gender[0]", "Male");
		
		stamper.FormFlattening = true;
		stamper.Close();
	}
}

ALD

原文地址:https://www.cnblogs.com/jinzesudawei/p/7373687.html