0

私がする必要があるのは、iTextSharp AcroFieldにクエリを実行して、回転しているかどうかを確認し、回転している場合は回転の値をキャプチャすることです。

したがって、次のフィールドがある場合:

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

afi = af.GetFieldItem("fieldName")

その特定のフィールドの回転(度単位)を取得するには、何をする必要がありますか?

4

1 に答える 1

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)
于 2009-06-05T21:03:57.020 に答える