【发布时间】:2018-07-05 15:31:52
【问题描述】:
我正在研究 iText7 的可访问性标签,我想要标签的特定结构。我看到 itext7 有库方法,但我在 itext 站点或任何其他开发人员论坛上的任何地方都找不到使用方法。我希望结构是这样的。
我看到了用于标记但不知道如何实现它的 TagTreePointer 类和子方法。
我正在尝试实现上述功能的示例代码,但发现有些不一致。
Document document = new Document(pdf);
pdf.setTagged();
pdf.getCatalog().setViewerPreferences(new PdfViewerPreferences().setDisplayDocTitle(true));
pdf.getCatalog().setLang(new PdfString("en-US"));
PdfDocumentInfo info = pdf.getDocumentInfo();
info.setTitle("English pangram");
Paragraph p = new Paragraph("Tested");
p.getAccessibilityProperties().setRole("H");
Paragraph p2 = new Paragraph("Child H1");
p2.getAccessibilityProperties().setRole("H1");
document.add(p.add(p2.add(new Paragraph("Testing ChildChild"))));
document.close();
我正在向标题段落添加段落,我看到添加的段落是相互附加的。正确的使用方法是什么?
【问题讨论】:
-
这真的很尴尬:
document.add(p.add(p2.add(new Paragraph("Testing ChildChild"))));人们会期待document.add(p).add(p2).add(new Paragraph("Testing ChildChild"));想想 HTML 是如何工作的。你不做<h>Tested<h1>Child H1<p>Testing ChildChild</p></h1><h>,是吗?顺便说一句:你为什么要编码这个?为什么不直接创建 HTML 并使用 iText 7 的 pdfHTML 插件将其转换为 PDF? -
我们没有创建任何 HTML 标签。相反,我们从数据库中获取数据并插入到段落中。
-
我还想了解 TagTreePointer 是如何工作的,如果可能的话,请提供一个实现链接。谢谢。
-
我用 document.add(p).add(p2).add(new Paragraph("Testing ChildChild"));我看到我添加的新段落没有显示在新行上。我希望每个段落都换行。
标签: pdf tags itext accessibility itext7