我需要使用 JAVA pdacroform api 为 PDF 表单设置一个值
在为 PDF 文件中的特定字段设置值的代码下方,但它抛出
线程“主”java.lang.NoClassDefFoundError 中的异常:org/fontbox/afm/AFMParser
尽管添加了 fontbox-1.7.jar
任何人都可以帮我吗?
import java.io.IOException;
import org.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.pdfbox.pdmodel.interactive.form.PDField;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.pdmodel.PDDocumentCatalog;
import org.pdfbox.exceptions.COSVisitorException;
import org.pdfbox.examples.AbstractExample;
public class SetField extends AbstractExample {
public void setField(PDDocument pdfDocument, String name, String value)
throws IOException {
PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
PDField field = acroForm.getField(name);
if (field != null) {
field.setValue(value);
} else {
System.err.println("No field found with name:" + name);
}
}
public static void main(String[] args) throws IOException,
COSVisitorException {
SetField setter = new SetField();
setter.setField(args);
}
private void setField(String[] args) throws IOException,
COSVisitorException {
PDDocument pdf = null;
try {
if (args.length != 3) {
usage();
} else {
SetField example = new SetField();
pdf = PDDocument.load(args[0]);
example.setField(pdf, args[1], args[2]);
pdf.save(args[0]);
}
} finally {
if (pdf != null) {
pdf.close();
}
}
}
private static void usage() {
System.err
.println("usage: org.apache.pdfbox.examples.fdf.SetField <pdf-file> <field-name> <field-value>");
}
}
谢谢