Ошибка создания iText PDF

Я использую iText для создания файла PDF из своего файла Java с помощью NetBeans 8.2. Я загрузил файлы iText JAR с сайта здесь. Моя версия iText - 7.0.2.

Вот частичный код (я включаю только файлы импорта и код, связанный с iText, из моего файла Java):
Attendance.java

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;

.
.
.
.

try {
    OutputStream output = new FileOutputStream(new File("C:\\Users\\dell\\Desktop\\Attendance.pdf"));
    DefaultListModel model1 = (DefaultListModel)present.getModel();            
    Document doc = new Document();
    PdfWriter.getInstance(doc, output);
    doc.open();
    for (int i = 0; i < 68; i++) {
        doc.add(new Paragraph((String) model1.getElementAt(i)));
    }                      
} catch (FileNotFoundException ex) {
    Logger.getLogger(Attendance.class.getName()).log(Level.SEVERE, null, ex);
}

Проблема:

Я получаю следующие 3 ошибки:

  1. no suitable constructor found for Document(no arguments)

Ошибка создания iText PDF

  1. cannot find symbol: getInstance(Document, OutputStream)

Ошибка создания iText PDF

  1. cannot find symbol: open()

Ошибка создания iText PDF

Я следил за множеством руководств, таких как это, но каким-то образом они не столкнулись с ошибкой, с которой я столкнулся, хотя я использовал тот же код. Если кто-то использовал iText для этого, мы будем благодарны за любой совет. Дайте мне знать, если вам понадобится дополнительная информация.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
1 848
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы смешиваете учебники iText 5 и код iText 7. Вы используете iText 7, но вы просматриваете неофициальное руководство, в котором описывается, как использовать iText 5. iText 7 - это полностью переписанный iText 5, а API совершенно другой.

Пожалуйста, ознакомьтесь со следующими руководствами на веб-сайте официальный:

Пример hello world можно найти здесь и выглядит так:

//Initialize PDF writer
PdfWriter writer = new PdfWriter(dest);
//Initialize PDF document
PdfDocument pdf = new PdfDocument(writer);
// Initialize document
Document document = new Document(pdf);
//Add paragraph to the document
document.add(new Paragraph("Hello World!"));
//Close document
document.close(); 

Как видите, он полностью отличается от кода iText 5, который вы используете.

Важный:ВСЕГДА перейдите к Официальный веб-сайт для информации! Есть много веб-сайтов, которые содержат примеры, которые дают неправильный совет, особенно в отношении цифровых подписей (устаревшие примеры) и слияния PDF-файлов (неправильный подход).

Что касается загрузки iText, всегда начинайте с страница загрузки, потому что он содержит ссылки на самые последние версии, включая матрицу совместимости для надстроек.

Привет, Микаэль. мы ответили одновременно. Я объединю свой ответ с вашим, а затем удалю свой ответ.

Bruno Lowagie 08.04.2018 09:11

Вы, вероятно, также захотите указать, что source forge - не лучший сайт для загрузки текущих версий iText.

mkl 08.04.2018 10:08

@mkl Я добавил ссылку на страницу загрузки на веб-сайте iText. Таким образом, у людей также есть видео «как установить».

Bruno Lowagie 08.04.2018 10:17

Я использую iText 7 для .NET. Я получаю: «Документ не содержит конструктора, который принимает 1 аргумент». Откуда в примере был получен класс документа, если нет

Carl Nathan Mier 12.04.2021 15:26

Другие вопросы по теме