Cấu trúc logic

Cấu trúc logic

PDF có thẻ bao gồm một cây cấu trúc logic định nghĩa thứ tự phân cấp ngữ nghĩa của tài liệu — các đoạn văn, tiêu đề, bảng, hình ảnh và danh sách. Aspose.PDF FOSS for .NET cung cấp API TaggedContent để xây dựng và kiểm tra cấu trúc này, điều này là cần thiết cho việc tuân thủ khả năng truy cập PDF/UA.


Truy cập nội dung được gắn thẻ

using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");

Tạo các phần tử cấu trúc

ITaggedContent cung cấp các phương thức factory cho mọi loại phần tử cấu trúc tiêu chuẩn. Các phần tử được lắp ráp thành cây bằng cách gọi AppendChild.

var root = tagged.RootElement;

var heading = tagged.CreateHeaderElement(1);
heading.SetText("Chapter 1");
root.AppendChild(heading);

var paragraph = tagged.CreateParagraphElement();
paragraph.SetText("This is the first paragraph.");
root.AppendChild(paragraph);

Bảng có cấu trúc

TableElement tạo các bảng có khả năng truy cập với các phần đầu, thân và chân.

var table = tagged.CreateTableElement();
root.AppendChild(table);

var thead = table.CreateTHead();
var headerRow = thead.CreateTR();
headerRow.CreateTH().SetText("Name");
headerRow.CreateTH().SetText("Value");

var tbody = table.CreateTBody();
var dataRow = tbody.CreateTR();
dataRow.CreateTD().SetText("Width");
dataRow.CreateTD().SetText("612");

Minh hoạ và hình vẽ

IllustrationElement bao bọc các hình ảnh trong cây cấu trúc.

var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);

Các loại phần tử cấu trúc

API hỗ trợ đầy đủ các loại phần tử cấu trúc PDF:

  • Cấp độ khối: Paragraph, Heading (H1-H6), List, ListItem, Table, BlockQuote, Code
  • Nội tuyến: Span, Link, Annotation, Figure, Formula
  • Nhóm: Division, Article, Section, Part

Mẹo và Thực hành tốt nhất

  • Luôn đặt TitleLanguage trên TaggedContent để tuân thủ PDF/UA.
  • Xây dựng cây cấu trúc từ trên xuống: tạo các phần tử, sau đó thêm các phần tử con.
  • Sử dụng SetAlternativeText trên các phần tử figure để hỗ trợ trình đọc màn hình.
  • Gắn thẻ bảng bằng THead, TBody, TFoot để đảm bảo ngữ nghĩa bảng đúng.
  • Xác thực tuân thủ PDF/UA bằng PdfFormatConversionOptions (xem Hướng dẫn chuyển đổi).

Các vấn đề thường gặp

IssueCauseFix
Xác thực PDF/UA thất bạiCây cấu trúc thiếu các phần tử bắt buộcĐảm bảo mọi nội dung có các phần tử cấu trúc tương ứng
Thứ tự tiêu đề saiH2 xuất hiện trước H1Tuân thủ thứ tự tiêu đề tuần tự
Hình ảnh không có văn bản thay thếSetAlternativeText chưa được gọiLuôn cung cấp văn bản thay thế cho hình minh họa
Bảng không được trình đọc màn hình nhận dạngThiếu cấu trúc THead/TBodySử dụng API cấu trúc bảng đầy đủ

Câu hỏi thường gặp

PDF có gắn thẻ là gì?

PDF có thẻ bao gồm một cây cấu trúc logic ánh xạ nội dung trực quan sang các phần tử ngữ nghĩa (tiêu đề, đoạn văn, bảng), cho phép các công cụ trợ năng và việc tái bố cục nội dung.

PDF có gắn thẻ có giống với PDF/UA không?

PDF/UA là một tiêu chuẩn yêu cầu gắn thẻ cộng với các quy tắc truy cập bổ sung.
Các PDF đã gắn thẻ là điều kiện tiên quyết để tuân thủ PDF/UA.

Tôi có thể gắn thẻ một PDF hiện có không?

API TaggedContent hoạt động tốt nhất với các tài liệu được tạo từ đầu. Đối với các PDF hiện có, hãy kiểm tra cây cấu trúc thông qua Document.TaggedContent.


Tóm tắt Tham chiếu API

Lớp / Phương thứcMô tả
TaggedContentĐiểm vào cho các thao tác cấu trúc logic
TaggedContent.SetTitleĐặt tiêu đề tài liệu cho khả năng truy cập
TaggedContent.SetLanguageĐặt ngôn ngữ tài liệu
ITaggedContentGiao diện với các phương thức nhà máy cho tất cả các loại phần tử
StructureElementLớp cơ sở cho tất cả các phần tử cấu trúc
StructureElement.AppendChildThêm một phần tử con vào cây
StructureElement.SetTextĐặt nội dung văn bản của một phần tử
TableElementPhần tử cấu trúc bảng có khả năng truy cập
TableElement.CreateTHeadTạo phần tiêu đề bảng
TableElement.CreateTBodyTạo phần thân bảng
TableTRElementPhần tử hàng bảng
TableTRElement.CreateTDThêm ô dữ liệu
TableTRElement.CreateTHThêm ô tiêu đề
IllustrationElementPhần tử cấu trúc hình ảnh/đồ họa
IllustrationElement.SetImageGắn một hình ảnh vào minh họa

Xem thêm

 Tiếng Việt