iText - Аннотация строки
В этой главе мы увидим, как добавить строчную аннотацию в документ PDF с помощью библиотеки iText.
Создание аннотации к строке в PDF
Вы можете создать пустой PDF-документ, создав экземпляр Documentкласс. При создании экземпляра этого класса вам необходимо передатьPdfDocument объект в качестве параметра его конструктору.
Чтобы использовать текстовую аннотацию в вашем PDF-документе, вам необходимо создать объект PdfTextAnnotation class и добавьте его в PdfPage.
Ниже приведены шаги по использованию текстовых аннотаций в документе PDF.
Шаг 1. Создание объекта PdfWriter
В PdfWriterКласс представляет DocWriter для PDF. Этот класс принадлежит пакетуcom.itextpdf.kernel.pdf. Конструктор этого класса принимает строку, представляющую путь к файлу, в котором должен быть создан PDF.
Создайте экземпляр класса PdfWriter, передав строковое значение, представляющее путь, по которому вам нужно создать PDF, его конструктору, как показано ниже.
// Creating a PdfWriter
String dest = "C:/itextExamples/lineAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
Когда объект этого типа передается в PdfDocument (класс), каждый элемент, добавленный в этот документ, будет записан в указанный файл.
Шаг 2: Создание объекта PdfDocument
В PdfDocumentclass - это класс, представляющий PDFDocument в 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, передав объект класса PdfDocument созданный на предыдущих шагах, как показано ниже.
// Creating a Document
Document document = new Document(pdfDoc);
Шаг 4: Создание объекта PdfAnnotation
В PdfAnnotation класс пакета com.itextpdf.kernel.pdf.annot представляет собой суперкласс всех аннотаций.
Среди его производных классов PdfLineAnnotationкласс представляет аннотацию строки. Создайте объект этого класса, как показано ниже.
// Creating PdfAnnotation
Rectangle rect = new Rectangle(20, 800, 0, 0);
PdfAnnotation annotation = new PdfLineAnnotation(rect);
Шаг 5: Установка цвета аннотации
Установите цвет аннотации, используя setColor() метод PdfAnnotationкласс. В этот метод передайте объект цвета, представляющий цвет аннотации, в качестве параметра.
// Setting color to the annotation
annotation.setColor(Color.BLUE);
Шаг 6: Установка заголовка и содержания аннотации
Задайте заголовок и содержание аннотации, используя setTitle() и setContents() методы PdfAnnotation class соответственно, как показано ниже.
// Setting title to the PdfLineAnnotation
annotation.setTitle(new PdfString("iText"));
// Setting contents of the PdfLineAnnotation
annotation.setContents("Hi welcome to Tutorialspoint");
Шаг 7. Добавление аннотации на страницу
Создать новый PdfPage класс с использованием addNewPage() метод PdfDocument class и добавьте созданную выше аннотацию с помощью метода addAnnotation () класса PdfPage, как показано ниже.
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(annotation);
Шаг 8: закрытие документа
Закройте документ, используя close() метод Document класс, как показано ниже.
// Closing the document
document.close();
пример
Следующая программа на Java демонстрирует, как добавить аннотацию строки в документ PDF с помощью библиотеки iText. Создает PDF-документ с именемlineAnnotation.pdf, добавляет к нему аннотацию строки и сохраняет ее в пути C:/itextExamples/.
Сохраните этот код в файле с именем LineAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfLineAnnotation;
import com.itextpdf.layout.Document;
public class LineAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/lineAnnotations.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating a PdfPage
PdfPage page = pdf.addNewPage();
// creating PdfLineAnnotation object
Rectangle rect = new Rectangle(0, 0);
float[] floatArray = new float[]{
20, 790, page.getPageSize().getWidth() - 20, 790
};
PdfAnnotation annotation = new PdfLineAnnotation(rect, floatArray);
// Setting color of the PdfLineAnnotation
annotation.setColor(Color.BLUE);
// Setting title to the PdfLineAnnotation
annotation.setTitle(new PdfString("iText"));
// Setting contents of the PdfLineAnnotation
annotation.setContents("Hi welcome to Tutorialspoint");
// Adding annotation to the page
page.addAnnotation(annotation);
// Closing the document
document.close();
System.out.println("Annotation added successfully");
}
}
Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды:
javac LineAnnotation.java
java LineAnnotation
После выполнения вышеуказанная программа создает PDF-документ, в котором отображается следующее сообщение.
Annotation added successfully
Если вы проверите указанный путь, вы сможете найти созданный документ PDF, как показано ниже.