iText - Anotación circular
En este capítulo, veremos cómo agregar una anotación circular a un documento PDF usando la biblioteca iText.
Creación de una anotación circular en un PDF
Puede crear un documento PDF vacío creando una instancia del Documentclase. Al crear una instancia de esta clase, debe pasar unPdfDocument objeto como parámetro de su constructor.
Para usar la anotación de texto en su documento PDF, debe crear un objeto de la clase PdfTextAnnotation y agregarlo a la Pdfpage.
Los siguientes son los pasos para usar la anotación de texto en el documento PDF.
Paso 1: crear un objeto PdfWriter
los PdfWriterclass representa el DocWriter de un PDF. Esta clase pertenece al paquetecom.itextpdf.kernel.pdf. El constructor de esta clase acepta una cadena, que representa la ruta del archivo donde se creará el PDF.
Instancia del PdfWriter class pasando un valor de cadena (que representa la ruta donde necesita crear un PDF) a su constructor, como se muestra a continuación.
// Creating a PdfWriter
String dest = "C:/itextExamples/circleAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
Cuando un objeto de este tipo se pasa a un PdfDocument (clase), todos los elementos agregados a este documento se escribirán en el archivo especificado.
Paso 2: crear un objeto PdfDocument
los PdfDocumentclass es la clase que representa el documento PDF en iText. Esta clase pertenece al paquetecom.itextpdf.kernel.pdf. Para crear una instancia de esta clase (en modo de escritura), debe pasar un objeto de la clasePdfWriter a su constructor.
Cree una instancia de la clase PdfDocument pasando el objeto PdfWriter a su constructor, como se muestra a continuación.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Una vez que se crea un objeto PdfDocument, puede agregar varios elementos como página, fuente, archivo adjunto y controlador de eventos usando los métodos respectivos proporcionados por su clase.
Paso 3: crear el objeto de documento
los Document clase del paquete com.itextpdf.layoutes el elemento raíz al crear un PDF autosuficiente. Uno de los constructores de esta clase acepta un objeto de la clase PdfDocument.
Instancia del Document clase pasando el objeto de la clase PdfDocument creado en los pasos anteriores, como se muestra a continuación.
// Creating a Document
Document document = new Document(pdfDoc);
Paso 4: Creación del objeto PdfAnnotation
los PdfAnnotation clase del paquete com.itextpdf.kernel.pdf.annot representa la superclase de todas las anotaciones.
Entre sus clases derivadas, PdfCircleAnnotationclase representa la anotación circular. Cree un objeto de esta clase como se muestra a continuación.
// Creating a PdfCircleAnnotation object Rectangle
rect = new Rectangle(150, 770, 50, 50);
PdfAnnotation annotation = new PdfCircleAnnotation(rect);
Paso 5: Establecer el color de la anotación
Establezca el color de la anotación con el setColor() método del PdfAnnotationclase. Para este método, pase el objeto de color que representa el color de la anotación como parámetro.
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
Paso 6: Establecer el título y el contenido de la anotación
Establezca el título y el contenido de la anotación utilizando el setTitle() y setContents() métodos del PdfAnnotation clase respectivamente.
// Setting title to the annotation
annotation.setTitle(new PdfString("circle annotation"));
// Setting contents of the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
Paso 7: agregar la anotación a una página
Crear un nuevo PdfPage clase usando el addNewPage() método del PdfDocument class y agregue la anotación creada anteriormente usando la addAnnotation() método de la clase PdfPage, como se muestra a continuación.
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(ann);
Paso 8: cerrar el documento
Cierre el documento con el close() método del Document clase, como se muestra a continuación.
// Closing the document
document.close();
Ejemplo
El siguiente programa Java demuestra cómo agregar una anotación circular a un documento PDF utilizando la biblioteca iText. Crea un documento PDF con el nombrecircleAnnotation.pdf, le agrega una anotación circular y la guarda en la ruta C:/itextExamples/
Guarde este código en un archivo con el nombre PdfCircleAnnotation.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.PdfCircleAnnotation;
import com.itextpdf.layout.Document;
public class CircleAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfDocument object
String file = "C:/itextExamples// circleAnnotation.pdf";
PdfDocument pdf = new PdfDocument(new PdfWriter(file));
// Creating a Document object
Document doc = new Document(pdf);
// Creating a PdfCircleAnnotation object
Rectangle rect = new Rectangle(150, 770, 50, 50);
PdfAnnotation annotation = new PdfCircleAnnotation(rect);
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
// Setting title to the annotation
annotation.setTitle(new PdfString("circle annotation"));
// Setting contents of the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(annotation);
// Closing the document
doc.close();
System.out.println("Annotation added successfully");
}
}
Compile y ejecute el archivo Java guardado desde el símbolo del sistema utilizando los siguientes comandos:
javac PdfCircleAnnotation.java
java PdfCircleAnnotation
Tras la ejecución, el programa anterior crea un documento PDF que muestra el siguiente mensaje.
Annotation added successfully
Si verifica la ruta especificada, puede encontrar el documento PDF creado, como se muestra a continuación.