Учебники

iText — Создание PDF-документа

Давайте теперь поймем, как создать PDF-документ, используя библиотеку iText.

Создание пустого документа PDF

Вы можете создать пустой PDF-документ, создав экземпляр класса Document . При создании экземпляра этого класса вам необходимо передать объект PdfDocument в качестве параметра его конструктору.

Ниже приведены шаги для создания пустого документа PDF.

Шаг 1: Создание объекта PdfWriter

Класс PdfWriter представляет Doc Writer для PDF. Этот класс принадлежит пакету com.itextpdf.kernel.pdf . Конструктор этого класса принимает строку, представляющую путь к файлу, в котором должен быть создан PDF.

Создайте экземпляр класса PdfWriter, передав строковое значение (представляющее путь, по которому вам нужно создать PDF), в его конструктор, как показано ниже.

// Creating a PdfWriter 
String dest = "C:/itextExamples/sample.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Когда объект этого типа передается в PdfDocument (класс), каждый элемент, добавленный в этот документ, будет записан в указанный файл.

Шаг 2: Создание объекта PdfDocument

Класс PdfDocument — это класс, который представляет документ PDF в iText. Этот класс принадлежит пакету com.itextpdf.kernel.pdf . Чтобы создать экземпляр этого класса (в режиме записи), вам нужно передать объект класса PdfWriter его конструктору.

Создайте экземпляр класса PdfDocument, передав вышеупомянутый созданный объект PdfWriter его конструктору, как показано ниже.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

После создания объекта PdfDocument вы можете добавить различные элементы, такие как страница, шрифт, вложение файла и обработчик события, используя соответствующие методы, предоставляемые его классом.

Шаг 3: Добавление пустой страницы

Метод addNewPage () класса PdfDocument используется для создания пустой страницы в документе PDF.

Добавьте пустую страницу в документ PDF, созданный на предыдущем шаге, как показано ниже.

// Adding an empty page 
pdfDoc.addNewPage(); 

Шаг 4: Создание объекта Document

Класс Document пакета com.itextpdf.layout является корневым элементом при создании самодостаточного PDF. Один из конструкторов этого класса принимает объект класса PdfDocument.

Создайте экземпляр класса Document , передав объект класса PdfDocument, созданный на предыдущих шагах, как показано ниже.

// Creating a Document   
Document document = new Document(pdfDoc); 

Шаг 5: Закрытие документа

Закройте документ с помощью метода close () класса Document, как показано ниже.

// Closing the document 
document.close();

пример

Ниже приводится Java-программа, которая демонстрирует создание PDF-документа. Он создает документ PDF с именем sample.pdf , добавляет к нему пустую страницу и сохраняет его по пути C: / itextExamples /

Сохраните этот код в файле с именем create_PDF.java .

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.layout.Document;  

public class create_PDF {    
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/sample.pdf";       
      PdfWriter writer = new PdfWriter(dest); 
   
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
   
      // Adding a new page 
      pdfDoc.addNewPage();               
   
      // Creating a Document        
      Document document = new Document(pdfDoc);               
   
      // Closing the document    
      document.close();              
      System.out.println("PDF Created");    
   } 
} 

Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды:

javac create_PDF.java 
java create_PDF

После выполнения вышеуказанная программа создает документ PDF, отображающий следующее сообщение.

PDF created

Если вы проверите указанный путь, вы можете найти созданный PDF-документ, как показано ниже.

Пример iText

Поскольку это пустой документ, при попытке открыть этот документ будет отображено сообщение об ошибке, как показано на следующем снимке экрана.