为什么我的 iTextSharp PDF 文本框这么大?
Why is my iTextSharp PDF textbox so large?
我正在使用以下代码将文本框添加到我的 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)
我正在使用以下代码将文本框添加到我的 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)