SetStructElemIDA

태그 지정 PDF, 접근성

설명

뒤의 A는 ANSI(char) DLL 진입점을 나타내며 ActiveX/COM 표면은 Unicode 형식만 노출합니다. 동작은 SetStructElemID와 동일하며 문자열 인수는 현재 SetAnsiMode 코드 페이지를 사용하여 해석됨

태그 스택에서 현재 열린 구조 요소에 고유 ID 문자열을 할당합니다. ID는 구조 요소 사전의 /ID 항목으로 기록되고 문서의 /IDTree 이름 트리에 인덱싱되어 다른 요소가 이를 참조할 수 있습니다. 예를 들어 표 셀의 /Headers 속성에서 사용됩니다. BeginTag 또는 BeginTagEx 호출 후, EndTag 호출 전에 사용합니다

구문

Delphi

Function DLSetStructElemIDA(InstanceID: Integer; ID: PAnsiChar): Integer;

DLL

int DLSetStructElemIDA(int InstanceID, const char * ID);

매개변수

ID문서 내에서 이 구조 요소를 고유하게 식별하는 비어 있지 않은 문자열입니다. TH-Col-1, TH-Row-2 또는 GUID와 유사한 문자열처럼 전체 문서에서 의미 있고 고유한 ID를 선택합니다

반환 값

성공하면 1을 반환합니다. 열린 문서가 없거나 태그 스택에 현재 열린 태그가 없거나 ID가 비어 있으면 0을 반환합니다

비고

/ID 항목은 ISO 32000-1 §14.7.3.4에 정의되어 있습니다. 모든 요소 ID는 문서를 저장할 때 구조 트리 루트의 단일 /IDTree 이름 트리에 수집됩니다. 이를 통해 접근성 도구와 다른 요소가 ID로 요소를 조회할 수 있습니다. /IDTree 항목은 ID 문자열의 알파벳순으로 정렬됩니다

일반적인 용도는 테이블 머리글 셀(TH)에 ID를 지정하여 데이터 셀(TD)이 SetStructElemHeaders를 통해 올바른 머리글과 연결되게 하는 것입니다. PDF/UA-1(ISO 14289-1 §7.10) 및 WCAG 2.x 성공 기준 1.3.1에서 복잡한 테이블에 이 연결을 요구합니다

여러 구조 요소에 같은 ID를 할당하면 동작이 정의되지 않습니다. 고유 ID마다 하나의 요소에만 해당 ID 문자열을 지정해야 합니다

예제

// Tag a column header cell with an ID for later /Headers reference
PDFlib.BeginTag('TH', 'Product Name', '', '');
PDFlib.SetStructElemID('TH-ProductName');
PDFlib.SetStructElemScope('Column');
PDFlib.DrawText('Product Name', 100, 700);
PDFlib.EndTag;

PDFlib.BeginTag('TH', 'Price', '', '');
PDFlib.SetStructElemID('TH-Price');
PDFlib.SetStructElemScope('Column');
PDFlib.DrawText('Price', 250, 700);
PDFlib.EndTag;

// Tag a data cell referencing both header cells
PDFlib.BeginTag('TD', '', '', '');
PDFlib.SetStructElemHeaders('TH-ProductName,TH-Price');
PDFlib.DrawText('Widget A', 100, 680);
PDFlib.EndTag;

참고 항목

SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode