0

我正在尝试使用 Seam 及其iText 实现创建可访问的 PDF。我找不到任何关于这是否可能的参考。似乎 iText 本身可以处理它;此示例中的 PDF已标记。但是我们创建的所有 PDF 都不是,我似乎无法弄清楚如何添加它。

以下是我们的一份文档中的一些示例代码:

<?xml version="1.0" encoding="UTF-8"?>
<p:document xmlns:p="http://jboss.com/products/seam/pdf" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:h="http://java.sun.com/jsf/html" type="PDF" pageSize="letter" title="Letter" margins="15.0 40.0 20.0 10.0">


    <f:facet name="header">
        <p:font size="10" name="TIMES-ROMAN" style="bold">
            <p:header borderWidth="0"/>
            <p:footer borderWidthTop="0" borderWidthBottom="0" alignment="center">
FY #{handler.form.year}<p:text value=" #{handler.form.name}"/><p:text value="     "/>CAN #{handler.form.number}<p:text value="     "/>Object Class #{handler.form.class}<p:text value="     "/>#{handler.form.time} 
            </p:footer>
        </p:font>
    </f:facet>

    <p:font size="10" name="TIMES-ROMAN">
        <p:table columns="3" widthPercentage="100" widths="1 2 1">
        <p:cell borderWidth="0">
                <p:image alignment="left" value="/assets/img/logo.PNG" scalePercent="5"/>
        </p:cell>
        <p:cell borderWidth="0" horizontalAlignment="center" paddingTop="30">
            <p:paragraph>

                WORKSHEET
            </p:paragraph>
        </p:cell>
... snip ...

我意识到这不是最好的代码(我只是从需要清理的文档中提取)。不过,关于 Seam 是否真的可以放入 PDF 标签有什么想法吗?

4

1 回答 1

3

从 iText 5.4.0(最新版本)开始支持开箱即用的标记 PDF。

当您使用高级对象(如 Paragraph、PdfPTable 等)并使用 PdfWriter.setTagged() 时,您将获得高质量的 Tagged PDF。您甚至可以选择自己的角色。

如果 jBoss/SEAM 会使用这样一个最新版本的 iText,我会感到惊讶。我已经联系他们进行升级,但 SEAM 团队从未回应。(我是谁?我是 iText Software 的 CEO。)

于 2013-03-15T06:28:49.410 回答