我只有pdf格式(由Adobe Acrobat生成 - test_pdf),有两个可编辑的文本框和一个带有3个选项的单选按钮组。
如何选择正确的选项并在pdf模板上标记? 当我设置radiobutton字段如下:
string pdfTemplate = @"c:\Temp\PDF\fw4.pdf";
string newFile = @"c:\Temp\PDF\completed_fw4.pdf";
PdfReader pdfReader = new PdfReader(pdfTemplate);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create));
AcroFields pdfFormFields = pdfStamper.AcroFields;
pdfFormFields.SetField("Text1", "test1");
pdfFormFields.SetField("Text2", "test2");
var radiobuttons = pdfFormFields.GetAppearanceStates("Group3");
foreach (string rb in radiobuttons)
{
if (rb != "Off")
{
if (rb == "Wybór1")
{
pdfFormFields.SetField(rb, "On");
}
else
{
pdfFormFields.SetField(rb, "Off");
}
}
}
pdfStamper.FormFlattening = true;
pdfStamper.Close();
不幸的是,总是最后一个按钮设置为'开'(我想在此示例中设置第一个按钮)。
我应该如何构建'foreach'循环?
提前感谢您提出任何建议。
答案 0 :(得分:1)
我找到了解决方案:
string pdfTemplate = @"c:\Temp\PDF\fw4.pdf";
string newFile = @"c:\Temp\PDF\completed_fw4.pdf";
PdfReader pdfReader = new PdfReader(pdfTemplate);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create));
AcroFields pdfFormFields = pdfStamper.AcroFields;
pdfFormFields.SetField("Text1", "test1");
pdfFormFields.SetField("Text2", "test2");
pdfFormFields.SetField("Group3", "Wybór1"); // it's only 1 line
pdfStamper.FormFlattening = true;
pdfStamper.Close();