我有一个由LiberOffice Draw 4.1.0.4创建的PDF表格。
表单包含文本字段、复选框和单选按钮
在我为字段设置值并使用PDFBox(2.0.21)展平表单后,无法显示字段值
我认为这可能是该字段注释的外观问题,但我不知道如何使其正确
测试PDF
import org.apache.commons.lang3.StringUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.apache.pdfbox.pdmodel.interactive.form.PDField;
import org.apache.pdfbox.pdmodel.interactive.form.PDTextField;
import java.io.File;
public class PdfGenerationTest {
public static void main( String[] args ) throws Exception{
testFillValue();
}
public static void testFillValue() throws Exception{
PDDocument pdDocument = PDDocument.load(new File("C:\\temp\\test.pdf"));
PDAcroForm acroForm = pdDocument.getDocumentCatalog().getAcroForm();
String defaultAppearance = "/Helv 12 Tf 0 0 1 rg";
for(PDField field : acroForm.getFields()) {
if (field instanceof PDTextField) {
PDTextField textField = (PDTextField) field;
textField.setActions(null);
textField.setDefaultAppearance(defaultAppearance);
}
}
setFormValue(acroForm, "TextBox", "testvalue");
setFormValue(acroForm, "radioBtn", "Yes");
setFormValue(acroForm, "chkBox", "Yes");
acroForm.refreshAppearances();
acroForm.flatten();
pdDocument.save("C:\\temp\\test_filled.pdf");
pdDocument.close();
}
private static void setFormValue(PDAcroForm acroForm, String key, String value) throws Exception {
PDField f = acroForm.getField(key);
if (f != null) {
if (value != null && StringUtils.isNotEmpty(value.trim())) {
f.setValue(value);
}
}
}
}
PDAcroForm。在使用pdfbox 2.0.24后,flaten为我工作
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.24</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-examples</artifactId>
<version>2.0.24</version>
</dependency>
</dependencies>
问题内容: 问题1, 我创建了一个文本字段,如上面的代码所示,并尝试使用textbox.setValue(“ Test Value”);设置值。方法,但显示如下错误: 第2期 为了解决问题#1,如果我使用cosDictionary属性(即cosDict1.setItem(COSName.V,new COSString(“ Test Value1”)))设置textBox的值; 然后在Adobe R
生成PDF框 正如您所看到的,左侧的签名面板是无效的,但左侧的签名字段是存在的并且可以工作。 我用PDFTRON生成相同的PDF。这就是结果: 生成的PDF Tron 在这种情况下,左侧的签名面板正确显示签名字段的存在。 我想获得这第二个案例(正确),但我不明白为什么PDF框可以这样做。 多谢
第一次在JAVA项目上使用FreeMarker,在配置汉字时使用堆栈。 看到了一些对FreeMarker.Properties进行更改的示例请求,但我没有这个文件。我只是导入。jar文件并使用它。 请告诉我该怎么做才能让它显示汉字。
如何使用PDFBox“展平”PDF表单(删除表单字段,但保留字段文本)? 这里回答了同样的问题: 一个快速的方法是从acrofrom中删除字段。 为此,您只需要获取文档曲库,然后是acroform,然后从该acroform中删除所有字段。 图形表示与注释链接并保留在文档中。 所以我写了这段代码:
但是,我得到了这个“重定向循环”问题: 重定向到URL'https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples':重定向到URL'https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/
排除不显示字段 Model.findAll({ attributes: { exclude: ['baz'] } });