У меня проблема с ITextPDF, когда я хочу добавить несколько картинок в l oop. Когда я пытаюсь написать эту ситуацию без l oop, она работает идеально. Я добавляю первое изображение на всю страницу, затем добавляю новую страницу и добавляю следующее изображение на всю страницу.
В приведенном ниже примере PDF получил только 1 страницу с последним изображением:
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;
public class PDFCreator {
public PDFCreator() {
Document document = new Document();
String output = "c:/Users/Lap/Desktop/QRCodeGenerator/printfile.pdf";
try {
FileOutputStream fos = new FileOutputStream(output);
PdfWriter writer = PdfWriter.getInstance(document, fos);
document.setMargins(0,0,0,0);
writer.open();
document.open();
int i = 0;
while (i < Main.fileNames.length) {
if (Main.fileNames[i] == null)
break;
document.newPage();
document.add(Image.getInstance("c:/Users/Lap/Desktop/QRCodeGenerator/" + Main.fileNames[i]));
i++;
}
document.close();
writer.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
В этом Пример ниже 2 изображения добавляются в PDF на 2 страницах, и они отлично работают
package backend;
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;
public class PDFCreator {
public PDFCreator() {
Document document = new Document();
String output = "c:/Users/Lap/Desktop/QRCodeGenerator/printfile.pdf";
try {
FileOutputStream fos = new FileOutputStream(output);
PdfWriter writer = PdfWriter.getInstance(document, fos);
document.setMargins(0,0,0,0);
writer.open();
document.open();
int i = 0;
document.add(Image.getInstance("c:/Users/Lap/Desktop/QRCodeGenerator/" + Main.fileNames[i]));
document.newPage();
i++;
document.add(Image.getInstance("c:/Users/Lap/Desktop/QRCodeGenerator/" + Main.fileNames[i]));
document.close();
writer.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}