当压模处于追加模式时,无法检查复选框

时间:2015-05-29 03:46:23

标签: vb.net pdf checkbox append itextsharp

我在Visual Basic 2012中使用ItextSharp.text.pdf。尝试从IRS.gov填写f941.pdf。一切都很好,除了它打破了使用权利。所以我研究了这个并在追加模式下创建了压模。这修复了使用权限,但现在我无法设置复选框。

MyReader = New PdfReader(myFileName)
PdfOutputStream = New FileStream(outFileName, FileMode.OpenOrCreate)
Stamper = New PdfStamper(MyReader, PdfOutputStream, Chr(0), True)
FormAcroFields = Stamper.AcroFields
KeysList = FormAcroFields.Fields.Keys.ToList
SetCheck(Index, True)`

我不确定压模定义中的Chr(0)是否正确。我没有得到任何错误,结果是KeysList(字符串列表)填充了表单字段键。调用SetCheck(FieldNumber,True)应设置复选框。

Private Function SetCheck(ByRef Fieldnumber As Integer, Optional State As Boolean = True) As Boolean
    Dim Dstates() As String = FormAcroFields.GetAppearanceStates(KeysList(Fieldnumber))
    If State = True Then
        FormAcroFields.SetField(KeysList(Fieldnumber), Dstates(0))
    Else
        If Dstates.Length > 1 Then
            FormAcroFields.SetField(KeysList(Fieldnumber), Dstates(1))
        Else
            FormAcroFields.SetField(KeysList(Fieldnumber), "")
        End If
    End If
    Return True
End Function

Dstates(0)将保留该值以设置复选框,如果存在Dstates(1),则它将是off值。如果只有Dstates(0)那么使用“”值似乎将它们关闭。这很好用,直到我使用了追加模式。

我发现了一些类似的帖子,但解决方案是在JS中,我不知道如何将其转换为VB。

0 个答案:

没有答案