在 Java 中創建帶標籤的 PDF 文件

帶標籤的 PDF 文件使用標籤來定義文檔中內容的邏輯結構。這種類型的 PDF 使用輔助技術和屏幕閱讀器改善了閱讀體驗。在 上一篇文章 中,您了解瞭如何在 Java 應用程序中以編程方式創建 PDF 文件。在本文中,您將學習如何在 Java 中以編程方式創建帶標籤的 PDF 文件。

用於創建帶標籤的 PDF 文件的 Java API

要創建帶標籤的 PDF 文件,我們將使用 Aspose.PDF for Java。它是用於 PDF 生成和操作的流行 API 之一。使用 API,您可以無縫地創建、處理和轉換簡單和復雜佈局的 PDF 文件。您可以 下載 API 或使用以下 Maven 配置安裝它。

存儲庫:

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

依賴:

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

在 Java 中創建帶標籤的 PDF 文件

為了在帶標籤的 PDF 中創建結構元素,Aspose.PDF for Java 提供了 ITaggedContent 接口。那麼讓我們看看如何使用這個接口在 Java 中創建一個帶標籤的 PDF 文件。

以下代碼示例顯示瞭如何在 Java 中創建帶標籤的 PDF。

// 創建一個新文檔
Document document = new Document();

// 獲取內容以處理加標籤的 PDF
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// 設置文檔的標題和語言
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// 添加標題
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// 添加段落
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);

// 保存標記的 PDF
document.save("tagged-pdf.pdf");

以下是上述代碼示例的輸出。

在 Java 中創建帶標籤的 PDF 文件

使用 Java 中的嵌套元素創建帶標籤的 PDF

在前面的示例中,我們創建了一個包含段落的簡單標記 PDF。現在讓我們看看如何在帶標籤的 PDF 中添加嵌套元素。以下是執行此操作的步驟。

以下代碼示例顯示瞭如何使用 Java 在帶標籤的 PDF 中添加嵌套元素。

// 創建一個新文檔
Document document = new Document();

// 獲取內容以處理加標籤的 PDF
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// 設置文檔的標題和語言
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// 添加標題
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// 創建段落
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
paragraphWithQuotes.getStructureTextState().setFont(FontRepository.findFont("Calibri"));
paragraphWithQuotes.getStructureTextState().setMarginInfo(new MarginInfo(10, 5, 10, 5));

// 添加跨度元素
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.");

// 附加到段落
paragraphWithQuotes.appendChild(spanElement1);
paragraphWithQuotes.appendChild(quoteElement);
paragraphWithQuotes.appendChild(spanElement2);

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

// 保存標記的 PDF
document.save("tagged-pdf.pdf");

以下屏幕截圖顯示了帶有嵌套元素的標記 PDF。

使用 Java 中的嵌套元素創建帶標籤的 PDF

在加標籤的 PDF 中設置文本結構樣式

您還可以通過設置字體樣式、系列、大小等將樣式應用於標記 PDF 中的文本。為此,Aspose.PDF for Java 允許您使用 [StructureTextState] 設置字體、字體大小、字體樣式和前景顏色22類。以下代碼示例顯示瞭如何在 Java 中的標記 PDF 中應用文本樣式。

// 創建一個新文檔
Document document = new Document();

// 獲取內容以處理加標籤的 PDF
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// 設置文檔的標題和語言
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// 添加標題
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// 創建段落
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
taggedContent.getRootElement().appendChild(paragraphWithQuotes);

// 設置樣式
paragraphWithQuotes.getStructureTextState().setFontSize(18F);
paragraphWithQuotes.getStructureTextState().setForegroundColor(Color.getRed());
paragraphWithQuotes.getStructureTextState().setFontStyle(FontStyles.Italic);
            
// 添加文字
paragraphWithQuotes.setText("Red italic text.");

// 保存標記的 PDF
document.save("tagged-pdf.pdf");

用 Java 說明帶標籤的 PDF 中的結構元素

為了說明結構元素,Aspose.PDF for Java 提供了IllustrationElement類。以下代碼示例顯示如何使用此類來說明帶標籤的 PDF 中的結構元素。

// 創建一個新文檔
Document document = new Document();

// 獲取內容以處理加標籤的 PDF
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// 設置文檔的標題和語言
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// 創建插圖元素
IllustrationElement figure1 = taggedContent.createFigureElement();
taggedContent.getRootElement().appendChild(figure1);
figure1.setAlternativeText( "Figure One");
figure1.setTitle("Image 1");
figure1.setTag("Fig1");
figure1.setImage("aspose_pdf.png");

// 保存標記的 PDF
document.save("tagged-pdf.pdf");

獲得免費許可證

您可以獲得免費的臨時許可證,以便在沒有評估限制的情況下使用 Aspose.PDF for Java。

結論

在本文中,您學習瞭如何在 Java 中創建帶標籤的 PDF 文件。此外,您還了解瞭如何創建嵌套元素、將樣式應用到文本,以及如何以編程方式在加標籤的 PDF 中說明結構元素。此外,您可以使用 文檔 探索有關 Java PDF API 的更多信息。如果您有任何問題或疑問,可以通過我們的論壇 聯繫我們。

也可以看看