SetStructElemIDA
Tagged PDF, Dostępność
Opis
Końcowa litera A oznacza punkt wejścia DLL ANSI (char); powierzchnia ActiveX/COM udostępnia wyłącznie postać Unicode. Zachowanie jest identyczne jak w SetStructElemID, a argumenty ciągów są interpretowane przy użyciu bieżącej strony kodowej SetAnsiMode
Przypisuje unikatowy ciąg tożsamości do elementu struktury aktualnie otwartego na stosie tagów. ID jest zapisywany jako wpis /ID w słowniku elementu struktury i indeksowany w drzewie nazw /IDTree dokumentu, aby inne elementy mogły się do niego odwoływać (na przykład przez atrybut /Headers komórek tabeli). Wywołaj tę funkcję po BeginTag lub BeginTagEx, a przed EndTag
Składnia
Delphi
Function DLSetStructElemIDA(InstanceID: Integer; ID: PAnsiChar): Integer;
DLL
int DLSetStructElemIDA(int InstanceID, const char * ID);
Parametry
| ID | Niepusty ciąg jednoznacznie identyfikujący ten element struktury w dokumencie. Wybierz ID znaczący i unikatowy w całym dokumencie, na przykład TH-Col-1, TH-Row-2 lub ciąg podobny do GUID |
|---|
Wartość zwracana
Zwraca 1 w przypadku powodzenia. Zwraca 0, jeśli żaden dokument nie jest otwarty, żaden tag nie jest obecnie otwarty na stosie tagów albo ID jest pusty
Uwagi
Wpis /ID zdefiniowano w ISO 32000-1 §14.7.3.4. Podczas zapisywania dokumentu wszystkie ID elementów są zbierane w płaskim drzewie nazw /IDTree w korzeniu drzewa struktury; pozwala to narzędziom dostępności i innym elementom wyszukiwać elementy według ID. Wpisy /IDTree są sortowane alfabetycznie według ciągu ID
Typowym zastosowaniem jest oznaczanie komórek nagłówkowych tabeli (TH) identyfikatorami, aby komórki danych (TD) mogły powiązać się z właściwymi nagłówkami za pomocą SetStructElemHeaders. To powiązanie jest wymagane dla złożonych tabel w PDF/UA-1 (ISO 14289-1 §7.10) i kryterium sukcesu WCAG 2.x 1.3.1
Jeśli ten sam ID zostanie przypisany kilku elementom struktury, zachowanie jest niezdefiniowane; dany ciąg ID powinien otrzymać tylko jeden element
Przykład
// 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;Zobacz również
SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode