[英]iText: Custom Xml Tags in metadata using Xmp
我想在PDF的元數據中添加自定義標簽而不是默認標簽。 代替
-<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>
我在某處發現...要擁有自定義xml標記,我需要擴展XmpArray並實現toString()方法。
我實現了以下內容。
public class CustomXmpArray extends XmpArray {
private static final long serialVersionUID = -4551741336974797330L;
public CustomXmpArray() {
super("dummy");
}
@Override
public String toString() {
StringBuffer buf = new StringBuffer("");
String s;
for (String string : this) {
s = string;
buf.append(s);
}
return buf.toString();
}
}
我在這里面臨的一個問題是,我不需要“ type”變量,但是XmpArray沒有無參數構造函數,因此我被迫將虛擬值傳遞給超類XmpArray。 我的執行方式有誤嗎?
為什么XmpArray沒有無參數構造函數?
我很困惑 為什么需要XmpArray
?
您如何將自定義XML
添加到XmpWriter?
有兩種選擇。
XmpSchema
實現,並使用addRdfDescription(XmpSchema s)
方法。 在這種情況下,將使用XmpArray
和LangAlt
類的對象向XmpSchema
對象添加特定類型的內容。 看來您想避免這種情況,所以您可能想要: 讓我引用XMP規范:
rdf:RDF元素可以包含零個或多個rdf:Description元素。 以下示例顯示了一個rdf:Description元素:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
... Dublin Core properties go here
</rdf:Description>
</rdf:RDF>
我認為您已經具有<rdf:RDF>
標記。 您還具有一個<rdf:Description>
標記。 您需要一個自定義模式,而不是像都柏林核心之類的標准模式。
如果您想避免使用此<rdf:Description>
標記,則要求我們向您展示如何做違反規范的操作。 我們不會那樣做。
如果您想在此<rdf:Description>
標記內包含一些自定義XML,則只需執行以下操作即可:
xmpWriter.addRdfDescription("", "<TagId-20><customTag><ls:userId>USERNAME</ ls:userId ><ls:WONum>12-110992</ WONum ></customTag ></TagId-20>");
結果將是:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" >
<TagId-20>
<customTag>
<ls:userId>USERNAME</ ls:userId >
<ls:WONum>12-110992</ WONum >
</customTag >
</TagId-20>
</rdf:Description>
</rdf:RDF>
那不是你想要的嗎? 如果沒有,則必須澄清。
另外:如果還定義一個名稱空間,而不是為xmlns
參數傳遞一個空字符串,那會更好。
順便說一句:您可能想閱讀XMP規范 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.