使用iTextsharp检查pdf中的复选框字段的常用方法是什么?

时间:2011-01-28 11:57:36

标签: c# pdf itextsharp

我正在使用iTextsharp填充可填写pdf的数据。 pdf表单中有n个复选框。我已使用“是”或“否”设置复选框的值。这很好用。但是有些复选框不能以这种方式工作;相反,我需要使用1或0来使其工作。那么任何人都可以帮助我使用iTextSharp检查/取消选中pdf复选框的常用方法是什么?

先谢谢,

雪白

7 个答案:

答案 0 :(得分:10)

打开所选PDF并进行转换。

PdfReader reader = new PdfReader(fileNameIn);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(fileNameOut));
AcroFields form = stamper.getAcroFields();

检查表单对象字段>键>结果视图查找复选框的字符串值,在我的情况下是" Check Box1"

String[] checkboxstates = form.GetAppearanceStates("Check Box1");

检查checkboxstates变量。 [0] =未检查的值,[1] =已检查的值。然后检查

fields.SetField("Check Box1", checkboxstates[1])

答案 1 :(得分:7)

你可以用这种方式找到:

PdfReader reader = new PdfReader(fileNameIn);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(fileNameOut));
AcroFields form = stamper.getAcroFields();

form.setField("Name","Test Name");
form.setField("odot","123456");
form.setField("Consortium","A Testing Co");
form.setField("PName","My Name");
form.setField("date","10/14/03");
form.setField("Box1","true"); //This is the checkbox control
stamper.close();

希望这个帮助

答案 2 :(得分:3)

没有“共同的方式”。您需要知道检查/取消选中值才能更改它们。

我回答了类似的问题,在那里我展示了如何找出这些价值观......啊!

Get the export value of a checkbox using iTextSharp

答案 3 :(得分:2)

pdfFormFields.SetField(“formfieldchkbox”,“是”); pdfFormFields.SetField(“formfieldchkbox”,“No”);

那应该做的。

答案 4 :(得分:0)

我发现可以使用Adobe Acrobat在PDF文件中设置复选框控件的导出值, 当导出值设置为“ anytext”时,我可以使用以下代码选中该复选框:

form.setField("Box1","anytext")

Property window of Check box

答案 5 :(得分:0)

我这样做了

stamp.AcroFields.SetField("chk1", "Yes");
stamp.AcroFields.SetField("chk2", "No");

答案 6 :(得分:0)

在这种出口价值中非常重要。

String pathin = @"D:\Research And Development\ITextSharpPdf\Data\\ACR_Form_Ver_11.pdf";
String pathout = @"D:\Research And Development\ITextSharpPdf\Data\ACR_Form_Ver_11_out.pdf";

        PdfReader reader = new PdfReader(pathin);// formFile);
        using (PdfStamper stamper = new PdfStamper(reader, new FileStream(pathout, FileMode.Create)))
        {

            var formFields = stamper.AcroFields;
            //formFields.SetField(<fieldname>, <exportvalue>,<true/false>);
            formFields.SetField("pdfQ1No", "No",true);
            formFields.SetField("pdfAppNo", "234234");
            stamper.FormFlattening = true;
            stamper.Close();
        }

pdfescapteeditimage

outputimage