【发布时间】:2017-09-01 07:55:16
【问题描述】:
我需要在 iText7 中创建一个 PDF/UA 兼容的文档。最重要的要求是标记所有内容。启用标记后(通过调用PdfDocument.SetTagged() 方法)添加到文档中的大多数元素都会获得正确的标记。
问题在于表格标题单元格的标记。根据 ISO 32000-1:2008,表格标题单元格必须标记为 TH,表格数据单元格必须标记为 TD(14.8.4.2.4.表格元素,表格 337)。
iText 允许使用Table.AddHeaderCell() 和Table.AddCell() 方法区分标题单元格和常规单元格。此机制为行组正确创建 THhead 和 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"
在使用AddHeaderCell()方法时是否可以让iText生成TH标签?
我正在使用 iText 7.0.0 for .NET(社区版)
【问题讨论】:
-
只想确认7.0.4版本。 (此时最新)显示相同的行为
标签: itext7