iText - установка положения изображения
В этой главе мы увидим, как установить положение изображения в PDF-документе с помощью библиотеки iText.
Установка положения изображения
Вы можете создать пустой PDF-документ, создав экземпляр Documentкласс. При создании экземпляра этого класса вам необходимо передатьPdfDocument объект в качестве параметра его конструктора.
Чтобы добавить изображение в PDF-файл, создайте объект изображения, который необходимо добавить, и добавьте его с помощью add() метод Documentкласс. Вы можете вставить изображение в нужное место в документе, используя методsetFixedPosition() из Image класс.
Ниже приведены шаги по установке положения изображения в документе PDF.
Шаг 1. Создание объекта PdfWriter
В PdfWriterкласс представляет DocWriter для PDF. Этот класс принадлежит пакетуcom.itextpdf.kernel.pdf. Конструктор этого класса принимает строку, представляющую путь к файлу, в котором должен быть создан PDF.
Создайте экземпляр класса PdfWriter, передав строковое значение (представляющее путь, по которому вам нужно создать PDF-файл) в его конструктор, как показано ниже.
// Creating a PdfWriter
String dest = "C:/itextExamples/positionOfImage.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: Создание объекта изображения
Чтобы создать объект изображения, прежде всего, создайте 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: Установка положения изображения
Вы можете установить положение изображения в PDF-документе, используя setFixedPosition()метод Image. С помощью этого метода установите положение изображения в координатах (100, 250) на документе, как показано ниже.
// Setting the position of the image to the center of the page
image.setFixedPosition(100, 250);
Шаг 6: Добавление изображения в документ
Теперь добавьте объект изображения, созданный на предыдущем шаге, используя add() метод Document класс, как показано ниже.
// Adding image to the document
document.add(img);
Шаг 7: закрытие документа
Закройте документ, используя close() метод Document класс, как показано ниже.
// Closing the document
document.close();
пример
Следующая программа на Java демонстрирует, как установить изображение в желаемом месте в документе PDF с помощью библиотеки iText. Создает PDF-документ с именемpositionOfImage.pdf, добавляет к нему изображение, устанавливает его ближе к центру страницы и сохраняет его в пути C:/itextExamples/
Сохраните этот код в файле с именем SettingPosition.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 SettingPosition {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/EXAMPLES/itextExamples/3images/positionOfImage.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdfDoc);
// Creating an ImageData object
String imFile = "C:/EXAMPLES/itextExamples/3images/logo.jpg";
ImageData data = ImageDataFactory.create(imFile);
// Creating an Image object
Image image = new Image(data);
// Setting the position of the image to the center of the page
image.setFixedPosition(100, 250);
// Adding image to the document
document.add(image);
// Closing the document
document.close();
System.out.println("Image added");
}
}
Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды.
javac SettingPosition.java
java SettingPosition
После выполнения вышеуказанная программа создает PDF-документ, отображающий следующее сообщение.
Image added
Если вы проверите указанный путь, вы сможете найти созданный документ PDF, как показано ниже.