iText - добавление списков в таблицу

В этой главе мы увидим, как добавить список в таблицу в PDF-документе с помощью библиотеки iText.

Добавление списков в таблицу в PDF

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

Чтобы добавить list в таблицу, вам нужно создать экземпляр List класс com.itextpdf.layout.element пакет и вставьте его в cell объект с помощью add() метод Cell класс.

Ниже приведены шаги по добавлению списка в ячейку таблицы.

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

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

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

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

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

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

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

Создайте экземпляр PdfDocument class, передав созданный выше объект 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: Создание объекта таблицы

В TableКласс представляет собой двумерную сетку, заполненную ячейками, упорядоченными по строкам и столбцам. Он принадлежит к пакетуcom.itextpdf.layout.element.

Создайте экземпляр Table класс, как показано ниже.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Шаг 5: Создание ячейки

Создать cell объект путем создания экземпляра Cell класс пакета com.itextpdf.layout, как показано ниже.

// Adding cell to the table 
Cell listCell = new Cell(); // Creating a cell

Шаг 6: Создание объекта списка

После создания ячейки создайте list объект путем создания экземпляра List класс пакета com.itextpdf.layout.element. Создайте элементы списка, создав экземплярListItem class и добавьте созданные элементы с помощью add() метод List класс, как показано ниже.

List list = new List(); 
ListItem item1 = new ListItem("JavaFX"); 
ListItem item2 = new ListItem("Java"); 
ListItem item3 = new ListItem("Java Servlets");        
list.add(item1); 
list.add(item2); 
list.add(item3);

Шаг 7: Добавление списка в ячейку таблицы

Теперь добавьте созданный выше список в ячейку таблицы, используя add()метод класса Cell. И добавьте эту ячейку в таблицу, используяaddCell() метод Table класс, как показано ниже.

listCell.add(list); 
table.addCell(listCell);

Шаг 8: Добавление таблицы в документ

Добавить table объект, созданный на предыдущем шаге с помощью add() метод Document класс, как показано ниже.

// Adding list to the document 
document.add(table);

Шаг 9: закрытие документа

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

// Closing the document 
document.close();

пример

Следующая программа на Java демонстрирует, как добавить список в ячейку таблицы в документе PDF с помощью библиотеки iText. Создает PDF-документ с именемaddingObjects.pdf, добавляет к нему таблицу, вставляет список в одну из своих ячеек и сохраняет его в пути C:/itextExamples/

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

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

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.List; 
import com.itextpdf.layout.element.ListItem; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class AddingListsToTable {      
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter object
      String file = "C:/itextExamples/addingObjects.pdf";       
      PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));                   
      
      // Creating a Document object       
      Document doc = new Document(pdfDoc);               
      
      // Creating a table       
      float [] pointColumnWidths = {300F, 300F};       
      Table table = new Table(pointColumnWidths);                            
      
      // Adding row 1 to the table                
      Cell c1 = new Cell();       
      c1.add("Java Related Tutorials");       
      c1.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c1);                      
      
      List list1 = new List();       
      ListItem item1 = new ListItem("JavaFX");
      ListItem item2 = new ListItem("Java");       
      ListItem item3 = new ListItem("Java Servlets");              
      list1.add(item1);       
      list1.add(item2);       
      list1.add(item3);                 
      
      Cell c2 = new Cell();       
      c2.add(list1);       
      c2.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c2);                 
      
      // Adding row 2 to the table                
      Cell c3 = new Cell();       
      c3.add("No SQL Databases");       
      c3.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c3);                     
      
      List list2 = new List();       
      list2.add(new ListItem("HBase"));       
      list2.add(new ListItem("Neo4j"));       
      list2.add(new ListItem("MongoDB"));                 
      
      Cell c4 = new Cell();       
      c4.add(list2); 
      c4.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c4);                       
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      System.out.println("Lists added to table successfully..");     
   } 
}

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

javac AddingListsToTable.java 
java AddingListsToTable

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

Lists added to table successfully..

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