Criar arquivos PDF marcados em Java

Um arquivo marcado PDF usa marcas para definir a estrutura lógica do conteúdo do documento. Esse tipo de PDF melhora a experiência de leitura usando tecnologias assistivas e leitores de tela. No post anterior, você viu como criar arquivos PDF programaticamente em aplicativos Java. Neste artigo, você aprenderá como criar arquivos PDF marcados programaticamente em Java.

API Java para criar arquivos PDF marcados

Para criar os arquivos PDF marcados, usaremos Aspose.PDF for Java. É uma das APIs populares para geração e manipulação de PDF. Usando a API, você pode criar, processar e converter facilmente arquivos PDF de layouts simples e complexos. Você pode baixar a API ou instalá-la usando as seguintes configurações do Maven.

Repositório:

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

Dependência:

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

Criar um arquivo PDF marcado em Java

Para criar elementos de estrutura em um PDF marcado, o Aspose.PDF para Java fornece a interface ITaggedContent. Então vamos ver como usar essa interface para criar um arquivo PDF marcado em Java.

O exemplo de código a seguir mostra como criar um PDF marcado em Java.

// Criar um novo documento
Document document = new Document();

// Obtenha conteúdo para trabalhar com PDF marcado
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Definir título e idioma para o documento
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Adicionar cabeçalho
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Adicionar parágrafo
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);

// Salvar PDF marcado
document.save("tagged-pdf.pdf");

A seguir está a saída do exemplo de código acima.

Criar um arquivo PDF marcado em Java

Criar um PDF marcado com elementos aninhados em Java

No exemplo anterior, criamos um PDF com tags simples que contém um parágrafo. Vamos agora dar uma olhada em como adicionar elementos aninhados em um PDF marcado. A seguir estão as etapas para realizar esta operação.

O exemplo de código a seguir mostra como adicionar elementos aninhados em um PDF marcado em Java.

// Criar um novo documento
Document document = new Document();

// Obtenha conteúdo para trabalhar com PDF marcado
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Definir título e idioma para o documento
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Adicionar cabeçalho
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Criar parágrafo
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
paragraphWithQuotes.getStructureTextState().setFont(FontRepository.findFont("Calibri"));
paragraphWithQuotes.getStructureTextState().setMarginInfo(new MarginInfo(10, 5, 10, 5));

// Adicionar 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.");

// Anexar ao parágrafo
paragraphWithQuotes.appendChild(spanElement1);
paragraphWithQuotes.appendChild(quoteElement);
paragraphWithQuotes.appendChild(spanElement2);

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

// Salvar PDF marcado
document.save("tagged-pdf.pdf");

A captura de tela a seguir mostra o PDF marcado com elementos aninhados.

Criar um PDF marcado com elementos aninhados em Java

Estilizando a estrutura de texto em um PDF marcado

Você também pode aplicar estilo ao texto em um PDF marcado, definindo o estilo da fonte, família, tamanho, etc. 22 classe. O exemplo de código a seguir mostra como aplicar estilo de texto em um PDF marcado em Java.

// Criar um novo documento
Document document = new Document();

// Obtenha conteúdo para trabalhar com PDF marcado
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Definir título e idioma para o documento
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Adicionar cabeçalho
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Criar parágrafo
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
taggedContent.getRootElement().appendChild(paragraphWithQuotes);

// Definir estilo
paragraphWithQuotes.getStructureTextState().setFontSize(18F);
paragraphWithQuotes.getStructureTextState().setForegroundColor(Color.getRed());
paragraphWithQuotes.getStructureTextState().setFontStyle(FontStyles.Italic);
            
// Adicione texto
paragraphWithQuotes.setText("Red italic text.");

// Salvar PDF marcado
document.save("tagged-pdf.pdf");

Ilustrando elementos de estrutura em um PDF marcado em Java

Para ilustrar os elementos da estrutura, o Aspose.PDF para Java fornece a classe IllustrationElement. O exemplo de código a seguir mostra como usar essa classe para ilustrar os elementos de estrutura em um PDF marcado.

// Criar um novo documento
Document document = new Document();

// Obtenha conteúdo para trabalhar com PDF marcado
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Definir título e idioma para o documento
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Criar ilustraçãoElemento
IllustrationElement figure1 = taggedContent.createFigureElement();
taggedContent.getRootElement().appendChild(figure1);
figure1.setAlternativeText( "Figure One");
figure1.setTitle("Image 1");
figure1.setTag("Fig1");
figure1.setImage("aspose_pdf.png");

// Salvar PDF marcado
document.save("tagged-pdf.pdf");

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para usar o Aspose.PDF para Java sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como criar arquivos PDF marcados em Java. Além disso, você viu como criar elementos aninhados, aplicar estilo ao texto e ilustrar elementos de estrutura em um PDF marcado programaticamente. Além disso, você pode explorar mais sobre a API Java PDF usando a documentação. Caso você tenha alguma dúvida ou pergunta, você pode entrar em contato conosco através do nosso fórum.

Veja também