2009-06-04 8 views
0

Ce que je dois faire est d'interroger un iTextSharp AcroField pour vérifier s'il est pivoté et, le cas échéant, saisir la valeur de la rotation.Comment faire pour obtenir la rotation du champ de texte avec iTextSharp

Donc, si j'ai le champ suivant:

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

afi = af.GetFieldItem("fieldName") 

Que dois-je faire pour obtenir la rotation (en degrés) de ce domaine spécifique?

Répondre

0

Une fois que vous avez le AcroField.Item comme indiqué ci-dessus, vous pouvez obtenir une rotation de champ en degrés comme ceci:

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 

Gardez à l'esprit c'est la rotation de la AcroField seulement. Vous devrez également vérifier si:

  • La page elle-même est également tourné (PDFReader.GetPageRotation (pageno))
  • La rotation du champ est par rapport à la page (iTextSharp.text.pdf.PdfFormField. FLAGS_NOROTATE)
Questions connexes