首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >itext7 pdfHTML添加页面标题而没有PAC工具警告

itext7 pdfHTML添加页面标题而没有PAC工具警告
EN

Stack Overflow用户
提问于 2018-08-23 11:58:52
回答 1查看 214关注 0票数 1

我将使用itext7创建可访问性pdf。在html文件中使用标记添加页面标题时,会收到警告:“可能不适当地使用P结构元素”。原因是iText增加了额外的

标签里面的标签。HTML代码:

代码语言:javascript
复制
<!DOCTYPE html>
    <html>
      <body>
         <h1>Title</h1>
      </body>
    </html>

当我生成的pdf使用iText7 pdfHTML加载项,它显示如下;

代码语言:javascript
复制
<h1><p><span>Title

<p>标记是发出警告的原因。然后返回PAC工具警告。不是为了得到任何警告,应该是,

代码语言:javascript
复制
<h1><span>Title

请帮我解决这个问题。提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-23 19:17:54

如果需要,可以自定义相应的标记工作人员。您可以获得标记工作者生成的结果布局元素并对其进行操作。特别是,如果您愿意,可以显式地指示元素不要在标记结构树中创建节点。

因此,对于您的示例,布局元素的结构大致是Div <- Paragraph <- "Title"。下面的代码是查找一个段落并将其可访问性角色设置为null,这样就不会在标记树中创建节点。

自定义标签工人:

代码语言:javascript
复制
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

代码语言:javascript
复制
ConverterProperties properties = new ConverterProperties();

properties.setTagWorkerFactory(new DefaultTagWorkerFactory() {
    @Override
    public ITagWorker getCustomTagWorker(IElementNode tag, ProcessorContext context) {
        if (TagConstants.H1.equals(tag.name())) {
            return new CustomH1TagWorker(tag, context);
        }
        return super.getCustomTagWorker(tag, context);
    }
});

HtmlConverter.convertToPdf(inputStream, pdfDocument, properties);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51985323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档