java - 增加 AcroFields(iTextSharp) 的宽度

标签 java pdf itext

我正在使用 iTextSharp 将数据填充到在 OpenOffice 中创建的 PDF 模板。它填充得很好,我得到了正确的 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 enter image description here

请帮忙。
谢谢。

最佳答案

我无法重现该问题。我已经制作了这个 POC:ChangeFieldSize

在此示例中,我采用了一个包含三个字段的表单,其中包括一个 “名称” 和一个 “公司” 字段。我首先更改“Name”字段的大小,与更改该字段的方式相同。然后我填写“名称” 字段和“公司” 字段。请注意,执行这些操作的顺序很重要。也许你正在做相反的事情。

结果看起来像 this : enter image description here

如您所见,文本并未像屏幕截图中那样被截断。

因此您可以尝试以下两件事:

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

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

关于java - 增加 AcroFields(iTextSharp) 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24404413/

相关文章:

java - @autowired on Spring 中的方法

android - java.io.exception 这可能不是 PDF 文件

java - 如何在 iText 中获取新页面

java - 带有 base64 图像的 HTML 到 PDF 抛出 FileNotFoundException

twitter-bootstrap - 使用 rotativa PDF Bootstrap 最小规模

c# - itextsharp document.close 上的堆栈溢出异常

java - 我不知道我的错误在哪里 appcompat :design:1. 1.0

java - 从java中的另一个类访问变量

java - 使用架构注册表对 avro 消息进行 Spring 云合约测试

angular - 使用 ng2-pdf-viewer 在 Angular 中显示 PDF 文件