Как получить вращение текстового поля с iTextSharp - PullRequest
0 голосов
/ 05 июня 2009

Что мне нужно сделать, это запросить 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 голосов
/ 06 июня 2009

Если у вас есть 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)
...