논리 구조
논리 구조
태그가 지정된 PDF에는 문서의 의미 계층 구조를 정의하는 논리 구조 트리가 포함됩니다 — 단락, 제목, 표, 그림 및 목록. 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 구조 요소 유형 전체 집합을 지원합니다:
- 블록 수준: Paragraph, Heading (H1-H6), List, ListItem, Table, BlockQuote, Code
- 인라인: Span, Link, Annotation, Figure, Formula
- 그룹화: Division, Article, Section, Part
팁 및 모범 사례
- PDF/UA 준수를 위해
TaggedContent에Title와Language을 항상 설정합니다. - 구조 트리를 위에서 아래로 구축합니다: 요소를 만든 다음 자식을 추가합니다.
- 화면 판독기 접근성을 위해 그림 요소에
SetAlternativeText를 사용합니다. - 적절한 표 의미론을 위해 표에
THead,TBody,TFoot를 태깅합니다. - PDF/UA 준수를
PdfFormatConversionOptions으로 검증합니다(Conversion guide 참조).
일반적인 문제
| Issue | Cause | Fix |
|---|---|---|
| PDF/UA 검증 실패 | 구조 트리에서 필수 요소가 누락됨 | 모든 콘텐츠에 해당 구조 요소가 있도록 보장 |
| 제목 순서가 잘못됨 | H2가 H1보다 먼저 나타남 | 순차적인 제목 계층 구조를 따름 |
| 그림에 대체 텍스트가 없음 | SetAlternativeText이 호출되지 않음 | 삽화에 항상 대체 텍스트를 제공 |
| 표가 화면 판독기에 인식되지 않음 | THead/TBody 구조 누락 | 전체 표 구조 API 사용 |
자주 묻는 질문
태그가 지정된 PDF란 무엇입니까?
태그가 지정된 PDF에는 시각적 콘텐츠를 의미 요소(제목, 단락, 표)에 매핑하는 논리 구조 트리가 포함되어 있어 접근성 도구와 콘텐츠 재배치를 가능하게 합니다.
태그가 지정된 PDF는 PDF/UA와 동일합니까?
PDF/UA는 태깅과 추가 접근성 규칙을 요구하는 표준입니다.
태그가 지정된 PDF는 PDF/UA 준수를 위한 전제 조건입니다.
기존 PDF에 태그를 지정할 수 있나요?
TaggedContent API는 처음부터 만든 문서와 가장 잘 작동합니다. 기존 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 | 일러스트에 이미지 첨부 |