1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
   | private void button1_Click(object sender, EventArgs e)
        {
            docWord = @"monFichier.docx";
 
            //overture du package en lecture/écriture
            Package officePackage = Package.Open(docWord, FileMode.Open, FileAccess.ReadWrite);
            MessageBox.Show("Fichier chargé avec succès", "Réussi", MessageBoxButtons.OK);
            //mettre ici le code des traitements
 
            //type de contenu pour la partie principale
            const String officeDocRelType = @"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument";
 
            PackagePart corePart = null;
            Uri documentUri = null;
            //on récupère la partie contenant les propriétés
            foreach (PackageRelationship relationship in officePackage.GetRelationshipsByType(officeDocRelType))
            {
                // Il n'y a qu'une seule partie de type partType dans le package
                documentUri = PackUriHelper.ResolvePartUri(new Uri("/", UriKind.Relative), relationship.TargetUri);
                corePart = officePackage.GetPart(documentUri);
                break;
            }
 
            if (corePart != null)
            {
                 string cpPropertiesSchema = "http://schemas.openxmlformats.org/package/2006/metadata/core-properties";
                 string dcPropertiesSchema = "http://purl.org/dc/elements/1.1/";
                 string dcTermsPropertiesSchema = "http://purl.org/dc/terms/";
 
                //construction d'un XmlNamespaceManager contenant les namespaces utilisés
                NameTable nt = new NameTable();
                XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
                nsmgr.AddNamespace("dc", dcPropertiesSchema);
                nsmgr.AddNamespace("cp", cpPropertiesSchema);
                nsmgr.AddNamespace("dcterms", dcTermsPropertiesSchema);
 
                //chargement de la partie dans un XmlDocument
                XmlDocument doc = new XmlDocument(nt);
                doc.Load(corePart.GetStream());
 
                XmlNode nodeAuteur = doc.DocumentElement.SelectSingleNode("//dc:creator", nsmgr);
                if (nodeAuteur != null)
                    labelAuteur.Text = nodeAuteur.InnerText;
 
                XmlNode nodeTitre = doc.DocumentElement.SelectSingleNode("//dc:title", nsmgr);
                if (nodeTitre != null)
                    labelTitre.Text = nodeTitre.InnerText;
 
                XmlNode nodeMotsClefs = doc.DocumentElement.SelectSingleNode("//cp:keywords", nsmgr);
                if (nodeMotsClefs != null)
                    labelMotsClefs.Text = nodeMotsClefs.InnerText;
 
                XmlNode nodeDate = doc.DocumentElement.SelectSingleNode("//dcterms:created", nsmgr);
                if (nodeDate != null)
                    labelDate.Text = DateTime.Parse(nodeDate.InnerText).ToShortDateString();
            }
 
 
 
            //On ferme le package pour éviter un rechargement par erreur
            officePackage.Close();
} | 
Partager