我需要在iText7中創建符合PDF/UA的文檔。最重要的要求是標記所有內容。啓用標記時(通過調用PdfDocument.SetTagged()
方法)添加到文檔的大多數元素都可以獲得正確的標籤。如何在iText7中將表格標題單元標記爲TH而不是TD?
問題是標記表格標題單元格。根據ISO 32000-1:2008,表格標題單元必須標記爲TH,並且表格數據單元必須標記爲TD(14.8.4.2.4。表格元素,表337)。
iText允許通過使用Table.AddHeaderCell()
和Table.AddCell()
方法來區分標題單元格和常規單元格。此機制可正確地爲行組創建THead和TBody標記。不幸的是,這些單元本身總是被標記爲TD。
下面是示例代碼,用於生成一個表:
//var pdfDoc = new PdfDocument(...)
pdfDoc.SetTagged();
var doc = new Document(pdfDoc);
var table = new Table(2);
table.AddHeaderCell("Header 0");
table.AddHeaderCell("Header 1");
table.AddCell("Data 0");
table.AddCell("Data 1");
doc.Add(table);
doc.Close();
下面是我們得到標籤結構的一個例子:
<Table>
<THead>
<TR>
<TD> //must be TH!
<P>
"Header 0"
<TD>
<P>
"Header 1"
<TBody>
<TR>
<TD> //TD is correct here
<P>
"Data 0"
<TD>
<P>
"Data 1"
是否有可能具有iText生成TH代碼時AddHeaderCell()
方法用來?
我利用iText 7.0.0用於.NET(社區版)
只是想確認版本7.0.4。(此時最新)顯示相同的行爲 –