使用iTextSharp与StringBuilder创建PDF复选框失败求助
解决iTextSharp生成PDF复选框的问题
直接通过StringBuilder追加普通文本字符串没法生成可交互的复选框,iTextSharp需要借助AcroForm表单字段来创建复选框,具体实现方式如下:
先初始化PDF文档与写入器:
Document document = new Document(); PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create)); document.Open();获取表单对象,创建复选框字段:
PdfAcroForm form = PdfAcroForm.GetAcroForm(writer.Document, true); // 创建"Yes"复选框,指定位置、名称和值 PdfCheckBoxField cbYes = new PdfCheckBoxField(writer, new Rectangle(100, 700, 120, 720), "chkYes", "Yes"); form.AddField(cbYes); // 创建"No"复选框 PdfCheckBoxField cbNo = new PdfCheckBoxField(writer, new Rectangle(150, 700, 170, 720), "chkNo", "No"); form.AddField(cbNo);添加标签文本并排版:
// 用表格对齐标签和复选框,布局更规整 PdfPTable table = new PdfPTable(3); table.AddCell(new PdfPCell(new Phrase("Permanent Address same as Present"))); table.AddCell(new PdfPCell(new Phrase("Yes"))); table.AddCell(new PdfPCell(new Phrase("No"))); document.Add(table);最后关闭文档:
document.Close();
补充说明
如果只需要视觉上的复选框(无交互功能),可以直接添加特殊符号到文本中:
sbnew12.Append("Permanent Address same as Present ☐ Yes ☐ No");
这种方式只是显示样式,无法像表单控件那样接收用户勾选操作。
内容的提问来源于stack exchange,提问作者Prathap reddy
相关产品推荐
相关产品推荐

