PDFBox - Adición de varias líneas
En el ejemplo proporcionado en el capítulo anterior, discutimos cómo agregar texto a una página en un PDF, pero a través de este programa, solo puede agregar el texto que cabría en una sola línea. Si intenta agregar más contenido, no se mostrará todo el texto que exceda el espacio de línea.
Por ejemplo, si ejecuta el programa anterior en el capítulo anterior pasando la siguiente cadena, solo se mostrará una parte.
String text = "This is an example of adding text to a page in the pdf document. we can
add as many lines as we want like this using the showText() method of the
ContentStream class";
Reemplace la string textdel ejemplo del capítulo anterior con la cadena mencionada anteriormente y ejecútelo. Tras la ejecución, recibirá el siguiente resultado.
Si observa la salida con atención, puede notar que solo se muestra una parte de la cadena.
Para agregar varias líneas a un PDF, debe establecer el interlineado usando el setLeading() método y cambie a una nueva línea usando newline() método después de terminar cada línea.
Pasos
Los siguientes son los pasos para crear un documento vacío y agregar contenido a una página en él.
Paso 1: carga de un documento existente
Puede cargar un documento existente utilizando el load()método de la clase PDDocument. Por lo tanto, cree una instancia de esta clase y cargue el documento requerido como se muestra a continuación.
File file = new File("Path of the document");
PDDocument doc = PDDocument.load(file);
Paso 2: Obtener la página requerida
Puede obtener la página requerida en un documento utilizando el getPage()método. Recupere el objeto de la página requerida pasando su índice a este método como se muestra a continuación.
PDPage page = doc.getPage(1);
Paso 3: preparación de la transmisión de contenido
Puede insertar varios tipos de elementos de datos utilizando el objeto de la clase denominada PDPageContentStream. Debe pasar el objeto del documento y el objeto de la página al constructor de esta clase, por lo tanto, cree una instancia de esta clase pasando estos dos objetos creados en los pasos anteriores como se muestra a continuación.
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
Paso 4: comenzar el texto
Al insertar texto en un documento PDF, puede especificar los puntos de inicio y finalización del texto mediante el beginText() y endText() métodos del PDPageContentStream clase como se muestra a continuación.
contentStream.beginText();
………………………..
code to add text content
………………………..
contentStream.endText();
Por lo tanto, comience el texto usando el beginText() método como se muestra a continuación.
contentStream.beginText();
Paso 5: Establecer la posición del texto
Utilizando el newLineAtOffset() método, puede establecer la posición en el flujo de contenido en la página.
//Setting the position for the line
contentStream.newLineAtOffset(25, 700);
Paso 6: Configuración de la fuente
Puede establecer la fuente del texto en el estilo requerido utilizando el setFont() método del PDPageContentStream class como se muestra a continuación para este método, debe pasar el tipo y tamaño de la fuente.
contentStream.setFont( font_type, font_size );
Paso 7: configuración del texto inicial
Puede configurar el texto inicial usando el setLeading() método como se muestra a continuación.
contentStream.setLeading(14.5f);
Paso 8: Insertar múltiples cadenas usando newline ()
Puede insertar varias cadenas utilizando el ShowText() método del PDPageContentStream clase, dividiendo cada uno de ellos usando el newline() método como se muestra a continuación.
contentStream. ShowText(text1);
contentStream.newLine();
contentStream. ShowText(text2);
Paso 9: Finalizar el texto
Después de insertar el texto, debe finalizar el texto con el endText() método del PDPageContentStream clase como se muestra a continuación.
contentStream.endText();
Paso 10: Cerrar PDPageContentStream
Cierra el PDPageContentStream objeto usando el close() método como se muestra a continuación.
contentstream.close();
Paso 11: guardar el documento
Después de agregar el contenido requerido, guarde el documento PDF usando el save() método del PDDocument class como se muestra en el siguiente bloque de código.
doc.save("Path");
Paso 12: Cerrar el documento
Finalmente, cierre el documento usando el close() método del PDDocument clase como se muestra a continuación.
doc.close();
Ejemplo
Este ejemplo demuestra cómo agregar varias líneas en un PDF usando PDFBox. Guarde este programa en un archivo con nombreAddMultipleLines.java.
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class AddMultipleLines {
public static void main(String args[]) throws IOException {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/my_pdf.pdf");
PDDocument doc = document.load(file);
//Creating a PDF Document
PDPage page = doc.getPage(1);
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
//Begin the Content stream
contentStream.beginText();
//Setting the font to the Content stream
contentStream.setFont( PDType1Font.TIMES_ROMAN, 16 );
//Setting the leading
contentStream.setLeading(14.5f);
//Setting the position for the line
contentStream.newLineAtOffset(25, 725);
String text1 = "This is an example of adding text to a page in the pdf document.
we can add as many lines";
String text2 = "as we want like this using the ShowText() method of the
ContentStream class";
//Adding text in the form of string
contentStream. ShowText(text1);
contentStream.newLine();
contentStream. ShowText(text2);
//Ending the content stream
contentStream.endText();
System.out.println("Content added");
//Closing the content stream
contentStream.close();
//Saving the document
doc.save(new File("C:/PdfBox_Examples/new.pdf"));
//Closing the document
doc.close();
}
}
Compile y ejecute el archivo Java guardado desde el símbolo del sistema utilizando los siguientes comandos.
javac AddMultipleLines.java
java AddMultipleLines
Tras la ejecución, el programa anterior agrega el texto dado al documento y muestra el siguiente mensaje.
Content added
Si verifica el documento PDF new.pdf en la ruta especificada, puede observar que el contenido dado se agrega al documento en varias líneas como se muestra a continuación.