iText - Добавление изображения в PDF
В этой главе мы увидим, как добавить изображение в документ PDF с помощью библиотеки iText.
Добавление изображения в PDF
Вы можете создать пустой PDF-документ, создав экземпляр Documentкласс. При создании экземпляра этого класса вам необходимо передатьPdfDocumentобъект в качестве параметра его конструктору. Чтобы добавить изображение в PDF, создайте объект изображения, который требуется добавить, и добавьте его, используяadd() метод Document класс.
Ниже приведены шаги по добавлению изображения в документ PDF.
Шаг 1. Создание объекта PdfWriter
В PdfWriterкласс представляет DocWriter для PDF. Этот класс принадлежит пакетуcom.itextpdf.kernel.pdf. Конструктор этого класса принимает строку, представляющую путь к файлу, в котором должен быть создан PDF.
Создайте экземпляр класса PdfWriter, передав строковое значение (представляющее путь, по которому вам нужно создать PDF-файл) в его конструктор, как показано ниже.
// Creating a PdfWriter
String dest = "C:/itextExamples/addingImage.pdf";
PdfWriter writer = new PdfWriter(dest);
Когда объект этого типа передается в PdfDocument (класс), каждый элемент, добавленный в этот документ, будет записан в указанный файл.
Шаг 2: Создание объекта PdfDocument
В PdfDocumentclass - это класс, представляющий PDF-документ в iText. Этот класс принадлежит пакетуcom.itextpdf.kernel.pdf. Чтобы создать экземпляр этого класса (в режиме записи), вам необходимо передать объект классаPdfWriter своему конструктору.
Создайте экземпляр класса PdfDocument, передав созданный выше объект PdfWriter в его конструктор, как показано ниже.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
После создания объекта PdfDocument вы можете добавлять различные элементы, такие как страница, шрифт, вложение файла и обработчик событий, используя соответствующие методы, предоставляемые его классом.
Шаг 3: Создание объекта документа
В Document класс пакета com.itextpdf.layoutявляется корневым элементом при создании самодостаточного PDF-файла. Один из конструкторов этого класса принимает объект класса PdfDocument.
Создайте экземпляр Document class, передав объект класса PdfDocument созданный на предыдущих шагах, как показано ниже.
// Creating a Document Document
document = new Document(pdfDoc);
Шаг 4: Создание объекта изображения
Для создания image объект, прежде всего, создайте ImageData объект с помощью create() метод ImageDataFactoryкласс. В качестве параметра этого метода передайте строковый параметр, представляющий путь к изображению, как показано ниже.
// Creating an ImageData object
String imageFile = "C:/itextExamples/javafxLogo.jpg";
ImageData data = ImageDataFactory.create(imageFile);
Теперь создайте экземпляр Image класс com.itextpdf.layout.elementпакет. При создании экземпляра передайте созданный вышеImageData объект в качестве параметра его конструктора, как показано ниже.
// Creating an Image object
Image img = new Image(data);
Шаг 5: Добавление изображения в документ
Добавьте объект изображения, созданный на предыдущем шаге, используя add() метод Document класс, как показано ниже.
// Adding image to the document
document.add(img);
Шаг 6: закрытие документа
Закройте документ, используя close() метод Document класс, как показано ниже.
// Closing the document
document.close();
пример
Следующая программа на Java демонстрирует, как добавить изображение в документ PDF с помощью библиотеки iText. Создает PDF-документ с именемaddingImage.pdf, добавляет к нему изображение и сохраняет его в пути C:/itextExamples/.
Сохраните этот код в файле с именем AddingImage.java.
import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class AddingImage {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/addingImage.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating an ImageData object
String imFile = "C:/itextExamples/logo.jpg";
ImageData data = ImageDataFactory.create(imFile);
// Creating an Image object
Image image = new Image(data);
// Adding image to the document
document.add(image);
// Closing the document
document.close();
System.out.println("Image added");
}
}
Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды:
javac AddingImage.java
java AddingImage
После выполнения вышеуказанная программа создает PDF-документ, в котором отображается следующее сообщение.
Image added
Если вы проверите указанный путь, вы сможете найти созданный документ PDF, как показано ниже.