if (info != null) {
DublinCoreSchema dc = new DublinCoreSchema();
PdfSchema p = new PdfSchema();
XmpBasicSchema basic = new XmpBasicSchema();
PdfName key;
PdfObject obj;
String value;
for (PdfName pdfName : info.getKeys()) {
key = pdfName;
obj = info.get(key);
if (obj == null)
continue;
value = ((PdfString)obj).toUnicodeString();
if (PdfName.TITLE.equals(key)) {
dc.addTitle(value);
}
if (PdfName.AUTHOR.equals(key)) {
dc.addAuthor(value);
}
if (PdfName.SUBJECT.equals(key)) {
dc.addSubject(value);
dc.addDescription(value);
}
if (PdfName.KEYWORDS.equals(key)) {
p.addKeywords(value);
}
if (PdfName.CREATOR.equals(key)) {
basic.addCreatorTool(value);
}
if (PdfName.PRODUCER.equals(key)) {
p.addProducer(value);
}
if (PdfName.CREATIONDATE.equals(key)) {
basic.addCreateDate(PdfDate.getW3CDate(obj.toString()));
}
if (PdfName.MODDATE.equals(key)) {
basic.addModDate(PdfDate.getW3CDate(obj.toString()));
}
}
if (dc.size() > 0) addRdfDescription(dc);
if (p.size() > 0) addRdfDescription(p);
if (basic.size() > 0) addRdfDescription(basic);