如何使用iTextSharp获取文本字段旋转

时间:2009-06-04 20:55:15

标签: vb.net pdf itextsharp

我需要做的是查询iTextSharp AcroField以检查它是否被旋转,如果是,则捕获旋转值。

所以,如果我有以下字段:

Dim af As iTextSharp.text.pdf.AcroFields = stamper.AcroFields
Dim afi As iTextSharp.text.pdf.AcroFields.Item 

afi = af.GetFieldItem("fieldName")

我需要做什么才能获得该特定字段的旋转(以度为单位)?

1 个答案:

答案 0 :(得分:0)

如上所示,如果您拥有AcroField.Item,您可以像下面那样获得字段旋转:

Dim widgetDict As PdfDictionary = Nothing
Dim mkDict As PdfDictionary = Nothing
Dim rNum As PdfNumber = Nothing

widgetDict = afi.widgets(0)
If Not widgetDict Is Nothing Then
    mkDict = widgetDict.GetAsDict(PdfName.MK)
    If Not mkDict Is Nothing Then
        rNum = mkDict.GetAsNumber(PdfName.R)
        If Not rNum Is Nothing Then
            Return rNum.DoubleValue     
        End If
    End If
End If
Return 0

请记住,这只是AcroField的旋转。您还必须检查是否:

  • 页面本身也是旋转的(PDFReader.GetPageRotation(pageNo))
  • 字段轮换相对于页面(iTextSharp.text.pdf.PdfFormField.FLAGS_NOROTATE)