1

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>");
    }
}

ありがとう

4

2 に答える 2

5

クラス定義の jar が見つからないため、java.lang.NoClassDefFoundError が発生しています。

FontBox jar をクラスパスに追加する必要があります。

于 2013-01-29T12:32:22.730 に答える
1

@ user1951544 の回答に対するコメントによると、非常に古い PdfBox バージョン 0.7.3 を使用しているようです。これは、現在の FontBox jar とうまく連携していない可能性が非常に高いです。現在の状態に更新することをお勧めします。

その場合、fontbox に必要な他のハード依存関係も考慮する必要があります。

メインの PDFBox コンポーネントである pdfbox は、fontbox および jempbox コンポーネントと commons-logging ライブラリに強く依存しています。

于 2013-01-29T12:59:52.583 に答える