iText:使用Xmp将自定义属性设置为PDF格式的元数据

时间:2013-04-22 06:38:26

标签: pdf itext

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

  1. com.itextpdf.text.Document类和
  2. 的addHeader方法
  3. com.itextpdf.text.pdf.PdfStamper的setMoreInfo方法。
  4. 但是这两个都将自定义属性添加到信息字典中。

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

1 个答案:

答案 0 :(得分: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>

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