2017-02-13 62 views
0

如何使用iText根据辅助功能指南创建表格?使用iText解决表格的可访问性问题java api

我有一些使用iText java API创建的表,我有以下的可访问性问题来解决它们。

TR must be a child of Table, THead, TBody, or TFoot 

有没有人在使用iText时遇到类似的问题或者知道如何解决这个问题?

更新:

我在分享我用于此问题的代码。使用iText的5.5.10

+1

由于您没有向我们展示如何创建PDF(以及如何创建没有表格的行,这真的很奇怪),因此无法解答您的问题。另外:您甚至不会告诉我们您是否正在使用iText 5(具有一些支持或PDF/UA的旧版本)或新的iText 7(以PDF/UA为基础编写的版本)。 –

+0

@布鲁诺严格解释标签,OP使用iText 5,毕竟他使用[tag:itext]而不是[tag:itext7]。考虑到这是他的第一个问题,虽然,一个公认的不能确定... – mkl

+0

@布鲁诺我用我用过的代码片段更新了我的问题。 – sbalan

回答

0

基于您的代码

headerTable.writeSelectedRows(0, -1, headerX, headerY, writer.getDirectContent()); 

写字台内容定x,y位置,我假设你要添加一个头。由于标题不是实际内容的一部分,因此您将表格错误地标记为真正的表格。诸如运行标题之类的东西应该被标记为工件,因为它们不是真实内容的一部分(你不希望每个标题都被读出来加载,你是否会违背PDF/UA标准)。

例如见iText page number in header within PDF/A我们添加一个标题是这样的:

PdfContentByte canvas = writer.getDirectContent(); 
canvas.beginMarkedContentSequence(PdfName.ARTIFACT); 
table.writeSelectedRows(0, -1, 36, 30, canvas); 
canvas.endMarkedContentSequence(); 

注意,这个答案只有如果我的假设是您要添加表作为一个标题是正确有效的。