当前位置: 首页 > 知识库问答 >
问题:

如果某个字段在PDF格式中严重出现,Java PDFBox不会保持该字段的字体外观

干茂才
2023-03-14

我需要从我的java web应用程序中动态填写pdf表单,我发现PDFBox非常有用,除了当我有多个同名字段时面临的问题或挑战。

我在一页pdf表单的不同地方有5个同名字段(让我们说“wcode”)。这些字段有不同的字体。通常当你手动填写一个字段时,其他字段会自动选择sames值,当我使用PDFbox填写时也会发生同样的情况,只是PDFBox将我所有的5个字段更改为与pdf表单中出现的第一个字段具有相同的字体。

以下是用于填充该字段的代码。

PDDocument _pdfDocument = PDDocument.load(new File(originalPdf))
PDAcroForm acroForm = _pdfDocument.getDocumentCatalog().getAcroForm();    
PDTextField myCodeField = (PDTextField) acroForm.getField("wcode");
       if (myCodeField != null) {
          myCodeField .setValue(my.getCode());
       }
//Refresh layout && Flatten the document                
       acroForm.refreshAppearances();
       acroForm.flatten();
 _pdfDocument.save(outputFile);

我加了

顶形。刷新外观();

经过一些研究,但这并没有改变任何事情。

因此,如果pdf表单上出现的第一个“wcode”字段是6pt,其余所有其他“wcode”字段都是6pt,即使我在外观属性中将它们设置为12pt。

我使用的是PDFBox 2.0.5

共有1个答案

那弘
2023-03-14

该问题已在大约一个月前发布的PDFBox 2.0.6版本中得到解决。查看对jira 3837的评论

 类似资料:
  • 问题内容: 我正在尝试自动化手动脚本(在Java中使用selenium)来检查网页上某个字段(标签:代表必填字段)的粗体外观。可能是什么seleniumJava函数来验证某些元素的粗体外观(类中没有关于外观的信息) 问题答案: 您可以使用方法检查字体粗细(假设您实际上正在使用Selenium- Webdriver)。 假设您有类似HTML的代码: 您可以执行以下操作检查字段标签div的字体粗细(以

  • 问题内容: 我正在尝试自动化手动脚本(在Java中使用硒)以检查网页上某个字段(标签:代表必填字段)的粗体外观。可能是什么硒Java函数来验证某些元素的粗体外观(类中没有关于外观的信息) 问题答案: 您可以使用方法检查字体粗细(假设您实际上正在使用Selenium- Webdriver)。 假设您有类似HTML的代码: 您可以执行以下操作来检查字段标签div的字体粗细(以下内容在Ruby中,尽管在

  • 我正在使用Apache PDFBox来读取一个可填充的PDF表单,并根据一些数据填充字段。我使用下面的代码(根据其他SO答案的建议)来获得默认的外观字符串并更改它(正如您在下面看到的,如果字段名是“field1”,我将字体大小从10更改为12。 如何加粗字段?是否有关于/HELV 10 Tf 0 g的排列顺序的文件?我需要设置什么来粗体字段? 如果我理解正确,有14种基本字体,我可以在PDFBox

  • 我有两个实体具有@OneTomany(Entity1)&@ManyToOne(Entity2)双向关系。在@OneTomany关系中,我有@Cascading{Cascade.All}。但是当我在事务或方法中将具有@ManyToOne关系的实体的初始为false的boolean属性更改为true,然后又变回false时,它会导致数据库触发更新查询,将实体的boolean设置为false,这似乎是错

  • 假设我有类似的模式 这些都不是必需的。用户可以向我发送上述任何属性,但没有其他未声明的属性。他们可以传给我,和或全部。但是如果他们向我传递了所有属性和附加属性,如,则应拒绝该消息。 我如何定义这样的模式?

  • 问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: 选择MySQL中除一列以外的所有列? 我想知道是否有一种方法可以从数据库的表中选择除一个字段以外的所有其他字段。 我知道我可以在选择查询中描述字段名称。 例如: 但是我的问题是,有没有办法以一种简单的方式做到这一点呢? 我正在使用MySQL和Zend框架。 问题答案: 你可以很容易做到 假设您的字段是id = 5 然后 如果你的