public void LoadControl(XmpPacketWrapper xmpMetadata) { treeView1.Nodes.Clear(); if (xmpMetadata != null) { foreach (XmpPackage package in xmpMetadata.Packages) { treeView1.Nodes.Add(package.NamespaceUri, package.NamespaceUri); TreeNode treePackage = treeView1.Nodes[package.NamespaceUri]; foreach (KeyValuePair <string, XmpValueBase> pair in package) { XmpArray xmpArray = pair.Value as XmpArray; LangAlt langAlt = pair.Value as LangAlt; XmpComplexType xmpComplex = pair.Value as XmpComplexType; if (xmpArray != null) { treePackage.Nodes.Add(pair.Key, pair.Key); foreach (string arrayItem in xmpArray.Values) { treePackage.Nodes[pair.Key].Nodes.Add(arrayItem, arrayItem); } } else if (langAlt != null) { treePackage.Nodes.Add(pair.Key, pair.Key); treePackage.Nodes[pair.Key].Nodes.Add(pair.Key + langAlt.ToString(), langAlt.ToString()); } else { string xmpProperty = string.Format("{0} - {1}", pair.Key, pair.Value.ToString()); treePackage.Nodes.Add(pair.Key, xmpProperty); } } } } treeView1.ExpandAll(); }
// --------------------------------------------------------------------------- /** * Creates a PDF document. */ public byte[] CreatePdf() { using (MemoryStream ms = new MemoryStream()) { // step 1 using (Document document = new Document()) { // step 2 PdfWriter writer = PdfWriter.GetInstance(document, ms); using (MemoryStream msXmp = new MemoryStream()) { XmpWriter xmp = new XmpWriter(msXmp); XmpSchema dc = new DublinCoreSchema(); XmpArray subject = new XmpArray(XmpArray.UNORDERED); subject.Add("Hello World"); subject.Add("XMP & Metadata"); subject.Add("Metadata"); dc.SetProperty(DublinCoreSchema.SUBJECT, subject); xmp.AddRdfDescription(dc); PdfSchema pdf = new PdfSchema(); /* * iTextSharp uses Item property instead of Java setProperty() method * * pdf.SetProperty(PdfSchema.KEYWORDS, "Hello World, XMP, Metadata"); * pdf.SetProperty(PdfSchema.VERSION, "1.4"); */ pdf[PdfSchema.KEYWORDS] = "Hello World, XMP, Metadata"; pdf[PdfSchema.VERSION] = "1.4"; xmp.AddRdfDescription(pdf); xmp.Close(); writer.XmpMetadata = ms.ToArray(); } // step 3 document.Open(); // step 4 document.Add(new Paragraph("Hello World")); } return(ms.ToArray()); } }
public void UpdateXMPData() { try { //ExStart:UpdateXMP // path to the modified file string filePath = "Images/Jpeg/sample.jpg"; // get xmp wrapper XmpPacketWrapper xmpWrapper = MetadataUtility.ExtractXmpPackage(filePath); // if wrapper is null if (xmpWrapper == null) { // create it xmpWrapper = new XmpPacketWrapper(); } // create package XmpPackage addingSchema = new XmpPackage("rs", "http://www.metadataworkinggroup.com/schemas/regions/"); // set date property addingSchema.AddValue("rs:createdDate", DateTime.UtcNow); // set string property addingSchema.AddValue("rs:File", "File name"); //initialze unordered xmp array XmpArray managersArray = new XmpArray(XmpArrayType.UNORDERED); managersArray.AddItem("Joe Doe"); managersArray.AddItem("Adam White"); // set array property addingSchema.SetArray("rs:managers", managersArray); // initialize xmp language alternative LangAlt availableDays = new LangAlt(); // add first value for 'en-us' language availableDays.AddLanguage("en-us", "Tue"); // add second value for 'en-us' languge availableDays.AddLanguage("en-us", "Fri"); // set LangAlt property addingSchema.SetLangAlt("rs:days", availableDays); // update xmp wrapper with new schema xmpWrapper.AddPackage(addingSchema); // create XmpMetadata with updated wrapper XmpMetadata xmpMetadata = new XmpMetadata(); xmpMetadata.XmpPacket = xmpWrapper; // update XMP MetadataUtility.UpdateMetadata(filePath, xmpMetadata); //ExEnd:UpdateXMP } catch (Exception exp) { } }