SetStructElemID
Etiketli PDF, Erişilebilirlik
Açıklama
Etiket yığınında o anda açık olan yapı öğesine benzersiz kimlik dizesi atar. Kimlik, yapı öğesi sözlüğündeki /ID girdisi olarak yazılır ve belgenin /IDTree ad ağacında dizinlenir; böylece diğer öğeler buna başvurabilir (örneğin tablo hücrelerinin /Headers özniteliği üzerinden). Bunu BeginTag veya BeginTagEx çağrısından sonra ve EndTag çağrısından önce yapın
Sözdizimi
Delphi
Function TPDFlib.SetStructElemID(Const ID: WideString): Integer;
ActiveX
Function PDFlib::SetStructElemID(ID As String) As Long
DLL
int DLSetStructElemID(int InstanceID, const wchar_t * ID);
Parametreler
| ID | Bu yapı ögesini belge içinde benzersiz biçimde tanımlayan boş olmayan dize. TH-Col-1, TH-Row-2 veya GUID benzeri bir dize gibi belgenin tamamında anlamlı ve benzersiz bir kimlik seçin |
|---|
Dönüş değeri
Başarı durumunda 1 döndürür. Açık belge yoksa, etiket yığınında o anda açık bir etiket yoksa veya ID boşsa 0 döndürür
Açıklamalar
/ID girdisi ISO 32000-1 §14.7.3.4'te tanımlanır. Belge kaydedilirken tüm öge kimlikleri yapı ağacı kökündeki düz bir /IDTree ad ağacında toplanır; bu, erişilebilirlik araçlarının ve diğer ögelerin kimliğe göre arama yapmasını sağlar. /IDTree girdileri kimlik dizesine göre alfabetik sıralanır
Yaygın kullanım örneği, tablo başlık hücrelerini (TH) kimliklerle etiketleyerek veri hücrelerinin (TD) SetStructElemHeaders aracılığıyla kendilerini doğru başlıklarla ilişkilendirebilmesidir. Bu ilişki PDF/UA-1 (ISO 14289-1 §7.10) ve WCAG 2.x Başarı Ölçütü 1.3.1 kapsamındaki karmaşık tablolar için gereklidir
Aynı ID birden çok yapı öğesine atanırsa davranış tanımsızdır; her benzersiz ID için yalnızca bir öğeye belirli bir ID dizesi atanmalıdır
Örnek
// 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;Ayrıca bkz
SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode