如何解决为什么我的 iTextSharp PDF 文本框这么大?
我正在使用以下代码向我的 PDF 文件添加文本框:
Dim stamper As PdfStamper = New PdfStamper(New PdfReader(sInputFile),File.Create(sOutputFile))
Dim iPageNumer As Integer = 1
Dim tf As TextField
tf = New TextField(stamper.Writer,New iTextSharp.text.Rectangle(33,780,30,28),"SomeName")
Dim bf = BaseFont.CreateFont(BaseFont.HELVETICA,BaseFont.CP1252,False)
With tf
.Alignment = Element.ALIGN_CENTER And Element.ALIGN_MIDDLE
.BackgroundColor = GrayColor.GRAYBLACK
.BorderColor = Color.GREEN
.BorderStyle = PdfBorderDictionary.STYLE_SOLID
.DefaultText = "This is a new text field."
.Font = bf
.FontSize = 7
.MaxCharacterLength = 25
.Options = TextField.REQUIRED Or TextField.MULTILINE
.Text = "This is the assigned value."
End With
stamper.AddAnnotation(tf.GetTextField(),iPageNumer)
stamper.Close()
这会创建一个几乎与文档一样高的文本框。 但是,我希望文本框只有 30、28。
我猜 Y = 780 是正确的,因为 iTextSharp 从左下角开始。
我在这里没有看到什么?
谢谢!
这是它的样子: 它的宽度仅为 5 个像素,高度为 806 个像素。
解决方法
愚蠢的坐标系需要以下参数:
Dim iNewY As Integer = uDocumentSize.Y - iY
Dim iLowerLeftX As Integer = iX
Dim iLowerLeftY As Integer = iNewY
Dim iUpperRightX As Integer = iX + yourtextboxwidth
Dim iUpperRightY As Integer = iNewY + yourtextboxheight
New iTextSharp.text.Rectangle(iLowerLeftX,iLowerLeftY,iUpperRightX,iUpperRightY)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。