我将使用itext7创建可访问性pdf。在html文件中使用标记添加页面标题时,会收到警告“ 可能不恰当地使用P Structure元素”。原因是iText在标签内添加了额外的
标签。 HTML代码:
<!DOCTYPE html>
<html>
<body>
<h1>Title</h1>
</body>
</html>
当我使用iText7 pdfHTML插件生成pdf时,它显示如下;
<h1><p><span>Title
<p>
标签是发出警告的原因。
然后返回PAC工具警告。不会得到任何警告
<h1><span>Title
请帮助我解决问题。 预先感谢
答案 0 :(得分:2)
您可以根据需要自定义相应的标记工作器。您可以获取由标签工作程序生成的结果布局元素,并对其进行操作。特别是,如果需要,您可以明确地指示元素不要在标签结构树中创建节点。
因此,在您的示例中,布局元素的结构大致为 public IActionResult Logon()
{
return View();
}
HttpGet("auth")]
public void Get(string client_id, string redirect_uri, string state, string scope, string response_type)
{
if(!isloggedOn)
{
LocalRedirectPermanent("Logon");
}
}
。下面的代码要做的是找到一个段落并将其可访问性角色设置为Div <- Paragraph <- "Title"
,这样就不会在标记树中创建节点。
自定义标签工作者:
null
创建private static class CustomH1TagWorker extends HTagWorker {
public CustomH1TagWorker(IElementNode element, ProcessorContext context) {
super(element, context);
}
@Override
public IPropertyContainer getElementResult() {
IPropertyContainer baseResult = super.getElementResult();
if (baseResult instanceof BlockElement && ((BlockElement) baseResult).getChildren().size() == 1
&& ((BlockElement) baseResult).getChildren().get(0) instanceof Paragraph) {
((Paragraph) ((BlockElement) baseResult).getChildren().get(0)).getAccessibilityProperties().setRole(null);
}
return baseResult;
}
}
和调整ConverterProperties
。确保将转换器属性传递给TagWorkerFactory
。
HtmlConverter