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();
        }
Ejemplo n.º 2
0
// ---------------------------------------------------------------------------

/**
 * 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)
            {

            }
        }