增加AcroFields的宽度(iTextSharp)

我正在使用iTextSharp将数据填充到PDF模板,这是在OpenOffice中创建的。 它填充得很好,我得到了正确的PDF,但有些我想增加AcroField的宽度。

我做了以下代码。 它正在增加宽度但文本没有显示。

AcroFields.Item fldItem = fields.getFieldItem(fieldName); for (int i =0; i < fldItem.size(); ++i) { PdfDictionary widgetDict = fldItem.getWidget(0); PdfArray rectArr = widgetDict.getAsArray(PdfName.RECT); float origX = rectArr.getAsNumber(0).floatValue(); rectArr.set( 2, new PdfNumber( origX + 12 + 60 ) ); } 

在下图中突出显示了一个。 实际字符串是10000 SUPERIOROPTICAL 123 4567 89 在此处输入图像描述

请帮忙。
谢谢。

我无法重现这个问题。 我做了这个POC: ChangeFieldSize

在此示例中,我采用包含三个字段的表单,其中包括"Name""Company"字段。 我首先更改"Name"字段的大小,与更改字段的方式相同。 然后我填写"Name"字段和"Company"字段。 请注意,我执行这些操作的顺序很重要。 也许你反过来这样做了。

结果如下: 在此处输入图像描述

如您所见,文本不会像屏幕截图那样被截断。

所以你可以尝试两件事:

  • 更改更改字段矩形的顺序并填写字段。
  • 升级到最新版本的iTextSharp。

如果这没有帮助,请发布SSCCE 。