โครงสร้างเชิงตรรกะ
โครงสร้างเชิงตรรกะ
Tagged PDFs มีโครงสร้างต้นไม้ตรรกะที่กำหนดลำดับชั้นเชิงความหมายของเอกสาร — ย่อหน้า, หัวเรื่อง, ตาราง, รูปภาพ, และรายการ. Aspose.PDF FOSS for .NET ให้บริการ TaggedContent API สำหรับการสร้างและตรวจสอบโครงสร้างนี้ ซึ่งเป็นสิ่งจำเป็นสำหรับการปฏิบัติตามมาตรฐานการเข้าถึง PDF/UA.
การเข้าถึงเนื้อหาที่มีแท็ก
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");สร้างองค์ประกอบโครงสร้าง
ITaggedContent ให้เมธอดแฟกทอรีสำหรับทุกประเภทขององค์ประกอบโครงสร้างมาตรฐาน. องค์ประกอบจะถูกรวบรวมเป็นต้นไม้โดยการเรียก 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);ตารางที่มีโครงสร้าง
TableElement สร้างตารางที่เข้าถึงได้พร้อมส่วนหัว, ส่วนเนื้อหา, และส่วนท้าย.
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");ภาพประกอบและรูปภาพ
IllustrationElement ห่อหุ้มรูปภาพในโครงสร้างต้นไม้.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);ประเภทขององค์ประกอบโครงสร้าง
API รองรับชุดเต็มของประเภทองค์ประกอบโครงสร้าง PDF:
- Block-level: ย่อหน้า, หัวเรื่อง (H1-H6), รายการ, รายการย่อย, ตาราง, บล็อกอ้างอิง, โค้ด
- Inline: ส่วน, ลิงก์, คำอธิบาย, รูปภาพ, สูตร
- Grouping: ส่วน, บทความ, หัวข้อ, ส่วน
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- ตั้งค่า
TitleและLanguageบนTaggedContentเสมอเพื่อให้สอดคล้องกับ PDF/UA. - สร้างโครงสร้างต้นไม้จากบนลงล่าง: สร้างองค์ประกอบแล้วต่อท้ายลูก.
- ใช้
SetAlternativeTextบนองค์ประกอบ figure เพื่อการเข้าถึงด้วยโปรแกรมอ่านหน้าจอ. - ทำเครื่องหมายตารางด้วย
THead,TBody,TFootเพื่อให้มีความหมายของตารางที่ถูกต้อง. - ตรวจสอบความสอดคล้องกับ PDF/UA ด้วย
PdfFormatConversionOptions(ดูคู่มือการแปลง).
ปัญหาทั่วไป
| Issue | Cause | Fix |
|---|---|---|
| การตรวจสอบ PDF/UA ล้มเหลว | โครงสร้างต้นไม้ขาดองค์ประกอบที่จำเป็น | ตรวจสอบให้แน่ใจว่าทุกเนื้อหามีองค์ประกอบโครงสร้างที่สอดคล้องกัน |
| ลำดับหัวข้อไม่ถูกต้อง | H2 ปรากฏก่อน H1 | ปฏิบัติตามลำดับชั้นหัวข้ออย่างต่อเนื่อง |
| รูปภาพไม่มีข้อความแทน | SetAlternativeText ไม่ได้ถูกเรียก | ควรให้ข้อความแทนสำหรับภาพประกอบเสมอ |
| ตารางไม่ถูกอ่านโดยโปรแกรมอ่านหน้าจอ | ขาดโครงสร้าง THead/TBody | ใช้ API โครงสร้างตารางเต็มรูปแบบ |
คำถามที่พบบ่อย
PDF ที่มีแท็กคืออะไร?
PDF ที่มีแท็กรวมถึงโครงสร้างตรรกะแบบต้นไม้ที่แมปเนื้อหาภาพให้กับองค์ประกอบเชิงความหมาย (หัวเรื่อง, ย่อหน้า, ตาราง) ทำให้เครื่องมือการเข้าถึงและการจัดเรียงเนื้อหาใหม่ทำงานได้
PDF ที่มีแท็กเป็นเหมือนกับ PDF/UA หรือไม่?
PDF/UA เป็นมาตรฐานที่ต้องการการทำแท็กพร้อมกับกฎการเข้าถึงเพิ่มเติม
PDF ที่ทำแท็กแล้วเป็นเงื่อนไขเบื้องต้นสำหรับการปฏิบัติตาม PDF/UA
ฉันสามารถทำแท็กให้ PDF ที่มีอยู่แล้วได้หรือไม่?
API TaggedContent ทำงานได้ดีที่สุดกับเอกสารที่สร้างจากศูนย์ สำหรับ PDF ที่มีอยู่แล้ว ให้ตรวจสอบโครงสร้างต้นไม้ผ่าน Document.TaggedContent.
API สรุปอ้างอิง
| Class / Method | Description |
|---|---|
TaggedContent | จุดเริ่มต้นสำหรับการดำเนินการโครงสร้างเชิงตรรกะ |
TaggedContent.SetTitle | ตั้งชื่อเอกสารสำหรับการเข้าถึง |
TaggedContent.SetLanguage | ตั้งค่าภาษาเอกสาร |
ITaggedContent | อินเทอร์เฟซกับเมธอดแฟคทอรีสำหรับทุกประเภทขององค์ประกอบ |
StructureElement | คลาสฐานสำหรับองค์ประกอบโครงสร้างทั้งหมด |
StructureElement.AppendChild | เพิ่มองค์ประกอบลูกลงในต้นไม้ |
StructureElement.SetText | ตั้งค่าข้อความเนื้อหาขององค์ประกอบ |
TableElement | องค์ประกอบโครงสร้างตารางที่เข้าถึงได้ |
TableElement.CreateTHead | สร้างส่วนหัวของตาราง |
TableElement.CreateTBody | สร้างส่วนเนื้อหาของตาราง |
TableTRElement | องค์ประกอบแถวตาราง |
TableTRElement.CreateTD | เพิ่มเซลล์ข้อมูล |
TableTRElement.CreateTH | เพิ่มเซลล์หัวตาราง |
IllustrationElement | องค์ประกอบโครงสร้างรูปภาพ/ภาพประกอบ |
IllustrationElement.SetImage | แนบภาพไปยังภาพประกอบ |