Как установить значение в форме PDF, используя Яву pdfbox API

Я должен установить значение для формы PDF, используя API pdacroform JAVA

ниже кода для подготовки стоимости для конкретной области в файле 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   ");
    }
}

Спасибо

1
nl ja de
Пожалуйста, покажите полную команду. Скорее всего, вы не сделали (или по крайней мере не правильно) добавляют fontbox банку к пути к классу, как @user1951544 предполагает.
добавлено автор mkl, источник
не разработка для меня даже при том, что я добавил путь к классу
добавлено автор Ganeshja, источник
я передал свои аргументы как этот "c:\\form.pdf" "первая" "ABC"
добавлено автор Ganeshja, источник

2 ответы

Вы получаете java.lang. NoClassDefFoundError из-за недостающей банки с определением класса.

Необходимо добавить банку FontBox к пути к классу.

5
добавлено
Также путь к классу командной строки должен быть похожим - устанавливает CLASSPATH=classpath1; classpath2 - так в вашем примере: установите ПУТЬ К КЛАССУ = % ПУТИ К КЛАССУ %; c:\downloads\fontbox-1.7.1.jar
добавлено автор zibi, источник
Вы ссылаетесь на банки от 2 различных placesL C:/Users/34/Downloads/fontbox-1.7.1.jar и c:\downloads\fontbox-1.7.1.jar - кто из них правилен?
добавлено автор zibi, источник
@Ganeshja... don' t забывают jempbox, который также зарегистрирован как трудная зависимость.
добавлено автор mkl, источник
@Ganeshja Видят мой ответ, регистрация свободного городского населения также требуется.
добавлено автор mkl, источник
Согласно вашему файлу проекта затмения, вы используете PdfBox 0.7.3 в сочетании с fontbox 1.7.1. Текущая версия PdfBox 1.7.1. Вы уверены, что ваша старая версия PdfBox сотрудничает хорошо с текущей версией FontBox?
добавлено автор mkl, источник
но тем не менее не разработка для меня
добавлено автор Ganeshja, источник
установите путь к классу = %; % c:\downloads\fontbox-1.7.1.jar
добавлено автор Ganeshja, источник
этот s мой фрагмент кода пути к классу и даже я также установил его, используя cmd
добавлено автор Ganeshja, источник
C:/Users/34/Downloads/fontbox-1.7.1.jar
добавлено автор Ganeshja, источник
ой m не уверенный около это... позволило мне обновить свой pdfbox 0.7.3 к 1.7.1
добавлено автор Ganeshja, источник
<? версия xml = "1.0" кодирование = "UTF-8"?> <путь к классу>
добавлено автор Ganeshja, источник
да обновленный к pdfbox1.7.1 и также обновляют путь к классу как u упомянутый, но теперь i' m получение этого исключения: Исключение в нити "главный" java.lang. NoClassDefFoundError: org/apache/commons/logging/LogFactory
добавлено автор Ganeshja, источник
Потрясающий получил его, его работа теперь!!! большое спасибо @user1951544 mkl большое спасибо
добавлено автор Ganeshja, источник

Согласно вашим комментариям к ответу @user1951544 вы, кажется, используете очень старую версию 0.7.3 PdfBox. Это очень вероятно не сотрудничает хорошо с текущей банкой FontBox. Я был бы обновление совета к текущему состоянию.

В этом случае необходимо также считать другие трудные зависимости требуемыми fontbox:

У главного компонента PDFBox, pdfbox, есть трудные зависимости от fontbox и jempbox компонентов и регистрирующей свободное городское население библиотеки.

1
добавлено
ya его работа теперь.... большое спасибо mkl...
добавлено автор Ganeshja, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async