2009-06-04 1 views
0

Что мне нужно сделать, так это запросить iTextSharp AcroField, чтобы проверить, вращается ли он, и, если это так, зафиксировать значение вращения.Как получить поворот текстового поля с помощью iTextSharp

Так что если у меня есть следующие поля:

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

afi = af.GetFieldItem("fieldName") 

Что мне нужно сделать, чтобы получить вращение (в градусах) этой конкретной области?

ответ

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)