Struktur Logis
Struktur Logis
PDF yang ditandai mencakup pohon struktur logis yang mendefinisikan hierarki semantik dokumen — paragraf, judul, tabel, gambar, dan daftar. Aspose.PDF FOSS for .NET menyediakan TaggedContent API untuk membangun dan memeriksa struktur ini, yang penting untuk kepatuhan aksesibilitas PDF/UA.
Mengakses konten ber-tag
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");Membuat elemen struktur
ITaggedContent menyediakan metode pabrik untuk setiap tipe elemen struktur standar. Elemen disusun menjadi pohon dengan memanggil 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);Tabel terstruktur
TableElement membuat tabel yang dapat diakses dengan bagian head, body, dan footer.
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");Ilustrasi dan gambar
IllustrationElement membungkus gambar dalam pohon struktur.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);Tipe elemen struktur
API mendukung seluruh set tipe elemen struktur PDF:
- Tingkat blok: Paragraf, Judul (H1-H6), Daftar, ItemDaftar, Tabel, KutipanBlok, Kode
- Inline: Rentang, Tautan, Anotasi, Gambar, Rumus
- Pengelompokan: Divisi, Artikel, Seksi, Bagian
Tips dan Praktik Terbaik
- Selalu atur
TitledanLanguagepadaTaggedContentuntuk kepatuhan PDF/UA. - Bangun struktur pohon dari atas ke bawah: buat elemen, lalu tambahkan anak.
- Gunakan
SetAlternativeTextpada elemen figure untuk aksesibilitas pembaca layar. - Tag tabel dengan
THead,TBody,TFootuntuk semantik tabel yang tepat. - Validasi kepatuhan PDF/UA dengan
PdfFormatConversionOptions(lihat panduan Konversi).
Masalah Umum
| Issue | Cause | Fix |
|---|---|---|
| Validasi PDF/UA gagal | Pohon struktur tidak memiliki elemen yang diperlukan | Pastikan semua konten memiliki elemen struktur yang sesuai |
| Urutan heading salah | H2 muncul sebelum H1 | Ikuti hierarki heading berurutan |
| Gambar tidak memiliki teks alt | SetAlternativeText tidak dipanggil | Selalu sediakan teks alt untuk ilustrasi |
| Tabel tidak dikenali oleh pembaca layar | Struktur THead/TBody tidak ada | Gunakan API struktur tabel lengkap |
FAQ
Apa itu PDF ber‑tag?
PDF ber‑tag mencakup pohon struktur logis yang memetakan konten visual ke elemen semantik (judul, paragraf, tabel), memungkinkan alat aksesibilitas dan penataan ulang konten.
Apakah PDF ber‑tag sama dengan PDF/UA?
PDF/UA adalah standar yang memerlukan tagging plus aturan aksesibilitas tambahan.
PDF yang ditandai merupakan prasyarat untuk kepatuhan PDF/UA.
Bisakah saya menandai PDF yang sudah ada?
API TaggedContent bekerja paling baik dengan dokumen yang dibuat dari awal. Untuk PDF yang sudah ada, periksa pohon struktur melalui Document.TaggedContent.
Ringkasan Referensi API
| Class / Method | Description |
|---|---|
TaggedContent | Titik masuk untuk operasi struktur logis |
TaggedContent.SetTitle | Atur judul dokumen untuk aksesibilitas |
TaggedContent.SetLanguage | Atur bahasa dokumen |
ITaggedContent | Antarmuka dengan metode pabrik untuk semua tipe elemen |
StructureElement | Kelas dasar untuk semua elemen struktur |
StructureElement.AppendChild | Tambahkan elemen anak ke pohon |
StructureElement.SetText | Atur konten teks dari sebuah elemen |
TableElement | Elemen struktur tabel yang dapat diakses |
TableElement.CreateTHead | Buat bagian header tabel |
TableElement.CreateTBody | Buat bagian tubuh tabel |
TableTRElement | Elemen baris tabel |
TableTRElement.CreateTD | Tambahkan sel data |
TableTRElement.CreateTH | Tambahkan sel header |
IllustrationElement | Elemen struktur gambar/ilustrasi |
IllustrationElement.SetImage | Lampirkan gambar ke ilustrasi |