Tạo tệp PDF được gắn thẻ trong Java

Tệp PDF được gắn thẻ sử dụng các thẻ để xác định cấu trúc logic của nội dung trong tài liệu. Loại PDF này cải thiện trải nghiệm đọc bằng cách sử dụng các công nghệ hỗ trợ và trình đọc màn hình. Trong bài trước, bạn đã thấy cách tạo tệp PDF theo chương trình trong các ứng dụng Java. Trong bài viết này, bạn sẽ học cách tạo các tệp PDF được gắn thẻ theo lập trình trong Java.

API Java để tạo tệp PDF được gắn thẻ

Để tạo các tệp PDF được gắn thẻ, chúng tôi sẽ sử dụng Aspose.PDF for Java. Nó là một trong những API phổ biến để tạo và thao tác PDF. Sử dụng API, bạn có thể tạo, xử lý và chuyển đổi liền mạch các tệp PDF có bố cục đơn giản và phức tạp. Bạn có thể tải xuống API hoặc cài đặt nó bằng cách sử dụng các cấu hình Maven sau.

Kho:

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

Sự phụ thuộc:

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

Tạo tệp PDF được gắn thẻ trong Java

Để tạo các phần tử cấu trúc trong một tệp PDF được gắn thẻ, Aspose.PDF for Java cung cấp giao diện ITaggedContent. Vì vậy, hãy xem cách sử dụng giao diện này để tạo tệp PDF được gắn thẻ trong Java.

Mẫu mã sau đây cho thấy cách tạo một tệp PDF được gắn thẻ trong Java.

// Tạo một tài liệu mới
Document document = new Document();

// Nhận nội dung cho công việc với PDF được gắn thẻ
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Đặt tiêu đề và ngôn ngữ cho tài liệu
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Thêm tiêu đề
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Thêm đoạn văn
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);

// Lưu tệp PDF được gắn thẻ
document.save("tagged-pdf.pdf");

Sau đây là kết quả của mẫu mã trên.

Tạo tệp PDF được gắn thẻ trong Java

Tạo một tệp PDF được gắn thẻ với các phần tử lồng nhau trong Java

Trong ví dụ trước, chúng tôi đã tạo một tệp PDF được gắn thẻ đơn giản có chứa một đoạn văn. Bây giờ chúng ta hãy xem cách thêm các phần tử lồng nhau trong một tệp PDF được gắn thẻ. Sau đây là các bước để thực hiện thao tác này.

Mẫu mã sau đây cho thấy cách thêm các phần tử lồng vào nhau trong một tệp PDF được gắn thẻ bằng Java.

// Tạo một tài liệu mới
Document document = new Document();

// Nhận nội dung cho công việc với PDF được gắn thẻ
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Đặt tiêu đề và ngôn ngữ cho tài liệu
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Thêm tiêu đề
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Tạo đoạn văn
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
paragraphWithQuotes.getStructureTextState().setFont(FontRepository.findFont("Calibri"));
paragraphWithQuotes.getStructureTextState().setMarginInfo(new MarginInfo(10, 5, 10, 5));

// Thêm phần tử nhịp
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.");

// Nối vào đoạn văn
paragraphWithQuotes.appendChild(spanElement1);
paragraphWithQuotes.appendChild(quoteElement);
paragraphWithQuotes.appendChild(spanElement2);

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

// Lưu tệp PDF được gắn thẻ
document.save("tagged-pdf.pdf");

Ảnh chụp màn hình sau đây cho thấy tệp PDF được gắn thẻ với các phần tử lồng vào nhau.

Tạo một tệp PDF được gắn thẻ với các phần tử lồng nhau trong Java

Tạo kiểu cho cấu trúc văn bản trong một tệp PDF được gắn thẻ

Bạn cũng có thể áp dụng kiểu cho văn bản trong một tệp PDF được gắn thẻ bằng cách đặt kiểu phông chữ, họ, kích thước, v.v. Đối với điều này, Aspose.PDF for Java cho phép bạn đặt phông chữ, cỡ chữ, kiểu phông chữ và màu nền trước bằng StructureTextState lớp. Mẫu mã sau đây cho thấy cách áp dụng kiểu văn bản trong một tệp PDF được gắn thẻ bằng Java.

// Tạo một tài liệu mới
Document document = new Document();

// Nhận nội dung cho công việc với PDF được gắn thẻ
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Đặt tiêu đề và ngôn ngữ cho tài liệu
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Thêm tiêu đề
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Tạo đoạn văn
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
taggedContent.getRootElement().appendChild(paragraphWithQuotes);

// Đặt kiểu
paragraphWithQuotes.getStructureTextState().setFontSize(18F);
paragraphWithQuotes.getStructureTextState().setForegroundColor(Color.getRed());
paragraphWithQuotes.getStructureTextState().setFontStyle(FontStyles.Italic);
            
// Thêm văn bản
paragraphWithQuotes.setText("Red italic text.");

// Lưu tệp PDF được gắn thẻ
document.save("tagged-pdf.pdf");

Minh họa các thành phần cấu trúc trong một tệp PDF được gắn thẻ trong Java

Để minh họa các phần tử cấu trúc, Aspose.PDF for Java cung cấp lớp IllustrationElement. Mẫu mã sau đây cho thấy cách sử dụng lớp này để minh họa các phần tử cấu trúc trong một tệp PDF được gắn thẻ.

// Tạo một tài liệu mới
Document document = new Document();

// Nhận nội dung cho công việc với PDF được gắn thẻ
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Đặt tiêu đề và ngôn ngữ cho tài liệu
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Tạo hình minh họa
IllustrationElement figure1 = taggedContent.createFigureElement();
taggedContent.getRootElement().appendChild(figure1);
figure1.setAlternativeText( "Figure One");
figure1.setTitle("Image 1");
figure1.setTag("Fig1");
figure1.setImage("aspose_pdf.png");

// Lưu tệp PDF được gắn thẻ
document.save("tagged-pdf.pdf");

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng Aspose.PDF for Java mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách tạo tệp PDF được gắn thẻ trong Java. Hơn nữa, bạn đã thấy cách tạo các phần tử lồng nhau, áp dụng kiểu cho văn bản và minh họa các phần tử cấu trúc trong một tệp PDF được gắn thẻ theo chương trình. Ngoài ra, bạn có thể khám phá thêm về Java PDF API bằng cách sử dụng tài liệu. Trong trường hợp bạn có bất kỳ câu hỏi hoặc thắc mắc nào, bạn có thể liên hệ với chúng tôi qua diễn đàn của chúng tôi.

Xem thêm