iText:使用Xmp将自定义属性设置为PDF中的元数据
我正在使用iText 5.4.0创建一个PDF文件。我需要添加一些自定义属性到pdf。 我尝试了两种方法iText:使用Xmp将自定义属性设置为PDF中的元数据,pdf,itext,Pdf,Itext,我正在使用iText 5.4.0创建一个PDF文件。我需要添加一些自定义属性到pdf。 我尝试了两种方法 com.itextpdf.text.Document的addHeader方法 com.itextpdf.text.pdf.PdfStamper的setMoreInfo方法 但这两种方法都将自定义属性添加到信息字典中 我需要使用Xmp添加它们,并检索回Xml文件。我该怎么做???是的。。!!。。得到了如下实现的自定义模式 public class CustomSchema extends Xm
com.itextpdf.text.Document的addHeader方法
com.itextpdf.text.pdf.PdfStamper的setMoreInfo方法
我需要使用Xmp添加它们,并检索回Xml文件。我该怎么做???是的。。!!。。得到了如下实现的自定义模式
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);
}
}
public类CustomSchema扩展了XmpSchema
{
私有静态最终长serialVersionUID=-4551741356974797330L;
公共静态最终字符串LABELID=“ls:LABELID”;
公共CustomSchema(){
超级(“cusprop”);
}
public void addLabelId(字符串labelId){
XmpArray数组=新的XmpArray(XmpArray.UNORDERED);
add(labelId);
setProperty(LABELID,数组);
}
public void addLabelArr(字符串tagId,字符串[]tagValue){
XmpArray数组=新的XmpArray(XmpArray.ORDERED);
对于(int i=0;i
生成的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>
啊
arr1
我想知道,如果这个结构也可以定制。
比如说,
-<TagId-20>
-<customTag>
<ls:userId>USERNAME</ ls:userId >
<ls:WONum>12-110992</ WONum >
</customTag >
</TagId-20>
-
-
用户名
12-110992
为了获得上述结构,我需要做什么??是否有可用的示例?如iText邮件列表上用手和脚解释的:您只能从信息字典中为PDF/A中描述的元数据创建XMP流。没有规范将“自定义”数据从信息字典映射到XMP,原因很简单,数据是“自定义”的。您需要使用定制的XmpSchema创建XMP流,该XmpSchema由您按照满足定制需求的方式开发。