2014-10-02 33 views
0

我正在使用VB.NET和iTextSharp库尝试并将图像放在现有字段中的PDF中。iTextSharp插入图像GetFieldPosition

我想获得领域的位置,以便我可以绝对把图像放在那里,但它对我来说是失败的,我无法弄清楚为什么。

我的代码是:

 Dim sig1file As String = HttpContext.Current.Server.MapPath("../files/userfiles/forms/" & tcode & "/" & tcode & "_pap_signature1.png") 
     Dim sig1img As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(sig1file) 

     Dim sig1positon() As Single = PDFFields.GetFieldPositions("payer1_signature1") 
     Dim sig1rect As New Rectangle(sig1positon(1), sig1positon(2), sig1positon(3), sig1positon(4)) 
     sig1img.ScaleToFit(sig1rect.Width, sig1rect.Height) 

     sig1img.SetAbsolutePosition(sig1positon(1) + (sig1rect.Width() - sig1img.ScaledWidth())/2, sig1positon(2) + (sig1rect.Height() - sig1img.ScaledHeight())/2) 
     Dim imagewriter As iTextSharp.text.pdf.PdfContentByte = PDFStamper.GetUnderContent(1) 
     imagewriter.AddImage(sig1img) 

我收到以下错误:

“”类型的异常出现在App_Web_y4xg45gn.dll但在用户代码中没有处理

附加信息:无法投射'System.Collections.Generic.List`1 [iTextSharp.text.pdf.AcroFields + FieldPosition]'类型的对象来键入'System.Single []'。

任何人都可以帮忙吗?

谢谢

回答

0

我真的解决了我自己的问题。

的解决方案是这样的

 Dim sig1file As String = HttpContext.Current.Server.MapPath("../files/userfiles/forms/" & tcode & "/" & tcode & "_pap_signature1.png") 
     Dim sig1img As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(sig1file) 

     Dim sig1position As System.Collections.Generic.IList(Of AcroFields.FieldPosition) = PDFFields.GetFieldPositions("payer1_signature1") 
     Dim test As AcroFields.FieldPosition = sig1position(0) 
     Dim left, right, top, bottom As Single 
     left = test.position.Left 
     right = test.position.Right 
     top = test.position.Top 
     bottom = test.position.Bottom