0

我正在使用 iText 5.4.0 创建一个 PDF 文件。我需要向 pdf 添加一些自定义属性。我尝试了两种方法

  1. 类的 addHeader 方法com.itextpdf.text.Document
  2. 的 setMoreInfo 方法com.itextpdf.text.pdf.PdfStamper

但是这两个都将自定义属性添加到信息字典中。

我需要使用 Xmp 添加它们并检索回 Xml 文件。我怎样才能做到这一点??

4

1 回答 1

0

是的..!!.. 像这样实现了自定义架构

public class CustomSchema extends XmpSchema 
{

private static final long serialVersionUID = -4551741356974797330L;

public static final String LABELID = "ls:LabelId";

public CustomSchema() {
    super("cusprop");
}

public void addLabelId(String labelId) {
    XmpArray array = new XmpArray(XmpArray.UNORDERED);
    array.add(labelId);
    setProperty(LABELID, array);
}
public void addLabelArr(String tagId, String[] tagValue) {
    XmpArray array = new XmpArray(XmpArray.ORDERED);
    for (int i = 0; i < tagValue.length; i++) {
        array.add(tagValue[i]);
    }
    setProperty(tagId.toString().replace(" ", "").trim(), array);
}
}

生成的 XML 如下

     <rdf:Description rdf:about="" xmlns:ls="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
     <TagId-20>
        <rdf:Seq>
            <rdf:li>arr0</rdf:li>
             <rdf:li>arr1</rdf:li>
        </rdf:Seq>
     </TagId-20>
     </rdf:Description>

我想知道,如果这种结构也可以定制。例如,

    -<TagId-20>
            -<customTag>
                    <ls:userId>USERNAME</ ls:userId >
                    <ls:WONum>12-110992</ WONum >
            </customTag >
    </TagId-20>

为了获得上述结构,我需要做什么?有没有可用的例子?

于 2013-04-25T06:19:47.457 回答