Я использую 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 ошибки:
no suitable constructor found for Document(no arguments)
cannot find symbol: getInstance(Document, OutputStream)
cannot find symbol: open()
Я следил за множеством руководств, таких как это, но каким-то образом они не столкнулись с ошибкой, с которой я столкнулся, хотя я использовал тот же код. Если кто-то использовал iText для этого, мы будем благодарны за любой совет. Дайте мне знать, если вам понадобится дополнительная информация.




Вы смешиваете учебники 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, всегда начинайте с страница загрузки, потому что он содержит ссылки на самые последние версии, включая матрицу совместимости для надстроек.
Вы, вероятно, также захотите указать, что source forge - не лучший сайт для загрузки текущих версий iText.
@mkl Я добавил ссылку на страницу загрузки на веб-сайте iText. Таким образом, у людей также есть видео «как установить».
Я использую iText 7 для .NET. Я получаю: «Документ не содержит конструктора, который принимает 1 аргумент». Откуда в примере был получен класс документа, если нет
Привет, Микаэль. мы ответили одновременно. Я объединю свой ответ с вашим, а затем удалю свой ответ.