iText - форматирование содержимого ячейки

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

Форматирование ячеек в таблице

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

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

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

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

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

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

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

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

В PdfDocumentclass - это класс, представляющий PDFDocument в 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.element. Добавьте содержимое ячейки, используяadd() метод Cell класс, как показано ниже.

// Adding cell 1 to the table 
Cell cell1 = new Cell();     // Creating a cell 
cell1.add("Name");           // Adding content to the cell       

// Adding cell 2 to the table 
Cell cell2 = new Cell();     // Creating a cell 
cell2.add("Raju");           // Adding content to the cell

Шаг 6: Добавление фона в ячейку

Создав ячейку и добавив в нее содержимое, вы можете отформатировать ячейку. Например, вы можете установить его фон, выровнять текст внутри ячейки, изменить цвет текста и т. Д., Используя различные методы класса ячейки, такие какsetBackgroundColor(), setBorder(), setTextAlignment().

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

c1.setBackgroundColor(Color.DARK_GRAY);    // Setting background color to cell1 
c1.setBorder(Border.NO_BORDER);            // Setting border to cell1 
c1.setTextAlignment(TextAlignment.CENTER); // Setting text alignment to cell1

Шаг 7: добавление ячейки в таблицу

Наконец, чтобы добавить эту ячейку в таблицу, вызовите addCell() метод Table класс и пройти cell объект в качестве параметра этого метода, как показано ниже.

table.addCell(c1);

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

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

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

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

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

// Closing the document 
document.close();

пример

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

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

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

import com.itextpdf.layout.Document;
import com.itextpdf.layout.border.Border; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class BackgroundToTable {      
   public static void main(String args[]) throws Exception {        
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/addingBackground.pdf";   
      PdfWriter writer = new PdfWriter(dest);                  
      
      // Creating a PdfDocument object       
      PdfDocument pdfDoc = new PdfDocument(writer);                   
      
      // Creating a Document object      
      Document doc = new Document(pdfDoc); 
      
      // Creating a table       
      float [] pointColumnWidths = {200F, 200F};       
      Table table = new Table(pointColumnWidths);
      
      // Populating row 1 and adding it to the table               
      Cell c1 = new Cell();                        // Creating cell 1 
      c1.add("Name");                              // Adding name to cell 1   
      c1.setBackgroundColor(Color.DARK_GRAY);      // Setting background color
      c1.setBorder(Border.NO_BORDER);              // Setting border
      c1.setTextAlignment(TextAlignment.CENTER);   // Setting text alignment      
      table.addCell(c1);                           // Adding cell 1 to the table 
      
      Cell c2 = new 
      Cell();                               
      c2.add("Raju");       
      c2.setBackgroundColor(Color.GRAY);       
      c2.setBorder(Border.NO_BORDER);       
      c2.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c2);      
      
      // Populating row 2 and adding it to the table               
      Cell c3 = new Cell();       
      c3.add("Id");       
      c3.setBackgroundColor(Color.WHITE);       
      c3.setBorder(Border.NO_BORDER);       
      c3.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c3);                          
      
      Cell c4 = new Cell();       
      c4.add("001");       
      c4.setBackgroundColor(Color.WHITE);       
      c4.setBorder(Border.NO_BORDER);       
      c4.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c4);                          
      
      // Populating row 3 and adding it to the table        
      Cell c5 = new Cell();       
      c5.add("Designation");       
      c5.setBackgroundColor(Color.DARK_GRAY);       
      c5.setBorder(Border.NO_BORDER);       
      c5.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c5);                 
      
      Cell c6 = new Cell(); 
      c6.add("Programmer");       
      c6.setBackgroundColor(Color.GRAY);       
      c6.setBorder(Border.NO_BORDER);       
      c6.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c6);                              
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Background added successfully..");     
   } 
}

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

javac BackgroundToTable.java 
java BackgroundToTable

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

Background added successfully..

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