代码之家  ›  专栏  ›  技术社区  ›  Corey Downie

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

  •  0
  • Corey Downie  · 技术社区  · 15 年前

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

    因此,如果我有以下字段:

    Dim af As iTextSharp.text.pdf.AcroFields = stamper.AcroFields
    Dim afi As iTextSharp.text.pdf.AcroFields.Item 
    
    afi = af.GetFieldItem("fieldName")
    

    我需要做什么才能得到这个特定场的旋转(以度为单位)?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Corey Downie    15 年前

    一旦你有了如上所示的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.pdformfield.flags otate)