Crear archivos PDF etiquetados en Java

Un archivo PDF etiquetado utiliza etiquetas para definir la estructura lógica del contenido del documento. Este tipo de PDF mejora la experiencia de lectura utilizando tecnologías de asistencia y lectores de pantalla. En la publicación anterior, ha visto cómo crear archivos PDF mediante programación en aplicaciones Java. En este artículo, aprenderá cómo crear archivos PDF etiquetados mediante programación en Java.

API de Java para crear archivos PDF etiquetados

Para crear los archivos PDF etiquetados, utilizaremos Aspose.PDF for Java. Es una de las API populares para la generación y manipulación de PDF. Con la API, puede crear, procesar y convertir sin problemas archivos PDF de diseños simples y complejos. Puede descargar la API o instalarla usando las siguientes configuraciones de Maven.

Repositorio:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Dependencia:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>22.4</version>
</dependency>

Crear un archivo PDF etiquetado en Java

Para crear elementos de estructura en un PDF etiquetado, Aspose.PDF for Java proporciona la interfaz ITaggedContent. Entonces, veamos cómo usar esta interfaz para crear un archivo PDF etiquetado en Java.

El siguiente ejemplo de código muestra cómo crear un PDF etiquetado en Java.

// Crear un nuevo documento
Document document = new Document();

// Obtener contenido para trabajar con PDF etiquetado
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Establecer el título y el idioma del documento
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Agregar encabezado
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Agregar párrafo
ParagraphElement paragraphElement = taggedContent.createParagraphElement();
paragraphElement.setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. " +
"Aenean nec lectus ac sem faucibus imperdiet. Sed ut erat ac magna ullamcorper hendrerit. " +
"Cras pellentesque libero semper, gravida magna sed, luctus leo. Fusce lectus odio, laoreet" +
"nec ullamcorper ut, molestie eu elit. Interdum et malesuada fames ac ante ipsum primis in faucibus." +
"Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat" +
"sem tristique eget. Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper" +
"pellentesque justo rhoncus accumsan. Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus" +
"ac iaculis eget, tempus et magna. Sed non consectetur elit. Sed vulputate, quam sed lacinia luctus," +
"ipsum nibh fringilla purus, vitae posuere risus odio id massa. Cras sed venenatis lacus.");

rootElement.appendChild(mainHeader);
rootElement.appendChild(paragraphElement);

// Guardar PDF etiquetado
document.save("tagged-pdf.pdf");

El siguiente es el resultado del ejemplo de código anterior.

Crear un archivo PDF etiquetado en Java

Cree un PDF etiquetado con elementos anidados en Java

En el ejemplo anterior, creamos un PDF etiquetado simple que contiene un párrafo. Veamos ahora cómo agregar elementos anidados en un PDF etiquetado. Los siguientes son los pasos para realizar esta operación.

El siguiente ejemplo de código muestra cómo agregar elementos anidados en un PDF etiquetado en Java.

// Crear un nuevo documento
Document document = new Document();

// Obtener contenido para trabajar con PDF etiquetado
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Establecer el título y el idioma del documento
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Agregar encabezado
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Crear párrafo
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
paragraphWithQuotes.getStructureTextState().setFont(FontRepository.findFont("Calibri"));
paragraphWithQuotes.getStructureTextState().setMarginInfo(new MarginInfo(10, 5, 10, 5));

// Agregar elemento de intervalo
SpanElement spanElement1 = taggedContent.createSpanElement();
spanElement1.setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec lectus ac sem faucibus imperdiet. Sed ut erat ac magna ullamcorper hendrerit. Cras pellentesque libero semper, gravida magna sed, luctus leo. Fusce lectus odio, laoreet nec ullamcorper ut, molestie eu elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat sem tristique eget. Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper pellentesque justo rhoncus accumsan. Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus ac iaculis eget, tempus et magna. Sed non consectetur elit. ");
QuoteElement quoteElement = taggedContent.createQuoteElement();
quoteElement.setText("Sed vulputate, quam sed lacinia luctus, ipsum nibh fringilla purus, vitae posuere risus odio id massa.");
quoteElement.getStructureTextState().setFontStyle(FontStyles.Bold | FontStyles.Italic);
SpanElement spanElement2 = taggedContent.createSpanElement();
spanElement2.setText(" Sed non consectetur elit.");

// Agregar al párrafo
paragraphWithQuotes.appendChild(spanElement1);
paragraphWithQuotes.appendChild(quoteElement);
paragraphWithQuotes.appendChild(spanElement2);

rootElement.appendChild(mainHeader);
rootElement.appendChild(paragraphWithQuotes);

// Guardar PDF etiquetado
document.save("tagged-pdf.pdf");

La siguiente captura de pantalla muestra el PDF etiquetado con elementos anidados.

Cree un PDF etiquetado con elementos anidados en Java

Dar estilo a la estructura del texto en un PDF etiquetado

También puede aplicar estilo al texto en un PDF etiquetado configurando el estilo de fuente, la familia, el tamaño, etc. Para esto, Aspose.PDF for Java le permite configurar la fuente, el tamaño de fuente, el estilo de fuente y el color de primer plano usando StructureTextState clase. El siguiente ejemplo de código muestra cómo aplicar estilos de texto en un PDF etiquetado en Java.

// Crear un nuevo documento
Document document = new Document();

// Obtener contenido para trabajar con PDF etiquetado
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Establecer el título y el idioma del documento
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Agregar encabezado
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Crear párrafo
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
taggedContent.getRootElement().appendChild(paragraphWithQuotes);

// Establecer estilo
paragraphWithQuotes.getStructureTextState().setFontSize(18F);
paragraphWithQuotes.getStructureTextState().setForegroundColor(Color.getRed());
paragraphWithQuotes.getStructureTextState().setFontStyle(FontStyles.Italic);
            
// Añadir texto
paragraphWithQuotes.setText("Red italic text.");

// Guardar PDF etiquetado
document.save("tagged-pdf.pdf");

Ilustración de elementos de estructura en un PDF etiquetado en Java

Para ilustrar los elementos de la estructura, Aspose.PDF for Java proporciona la clase IllustrationElement. El siguiente ejemplo de código muestra cómo usar esta clase para ilustrar los elementos de estructura en un PDF etiquetado.

// Crear un nuevo documento
Document document = new Document();

// Obtener contenido para trabajar con PDF etiquetado
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Establecer el título y el idioma del documento
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Crear elemento de ilustración
IllustrationElement figure1 = taggedContent.createFigureElement();
taggedContent.getRootElement().appendChild(figure1);
figure1.setAlternativeText( "Figure One");
figure1.setTitle("Image 1");
figure1.setTag("Fig1");
figure1.setImage("aspose_pdf.png");

// Guardar PDF etiquetado
document.save("tagged-pdf.pdf");

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para usar Aspose.PDF for Java sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a crear archivos PDF etiquetados en Java. Además, ha visto cómo crear elementos anidados, aplicar estilo al texto e ilustrar elementos de estructura en un PDF etiquetado mediante programación. Además, puede explorar más sobre la API PDF de Java utilizando la documentación. En caso de que tenga alguna pregunta o consulta, puede contactarnos a través de nuestro foro.

Ver también