Récupération des documents intégrés à partir des notes d'une tâche

Aperçu

Dans Microsoft Project Files (MPP), les notes de tâche peuvent contenir des documents intégrés - tels que les fichiers .txt, .doc ou .rtf. Ces objets embarqués sont généralement stockés au format RTF dans la propriété `notesrtf» de la tâche.

Alors que Aspose.tasks pour .NET seul ne prend pas en charge entièrement l’analyse ou l’extraction de ces documents intégrés **, il peut être combiné avec ** Aspose.Words pour .NET ** pour interpréter le contenu RTF et récupérer les fichiers embarqués.

Cet article montre comment lire les données «notesrtf» d’une tâche et extraire des documents intégrés à l’aide d’Aspose.Words.

Exigences

Avant de continuer, assurez-vous de:

Vous pouvez installer les deux bibliothèques via Nuget:

1Install-Package Aspose.Tasks
2Install-Package Aspose.Words

Récupération des documents intégrés des notes de tâche

L’extrait de code suivant:

  1. Charge le fichier MPP à l’aide de ASPOSE.TASKS;
  2. Lit le contenu «notesrtf» de chaque tâche;
  3. Parses RTF en utilisant ASPOSE.WORDS;
  4. Enregistre chaque objet intégré (s’il est trouvé) sur le disque.

✅ Exemple de code

{{\ «section “code-snippet” i18n-exclude>}}

 1Project project = new Project("New Project.mpp");
 2Task task = project.RootTask.Children.GetById(1);
 3
 4File.WriteAllText("Notes_out.rtf", task.Get(Tsk.NotesRTF));
 5
 6Document doc = null;
 7using (MemoryStream stream = new MemoryStream())
 8using (StreamWriter streamWriter = new StreamWriter(stream))
 9{
10    streamWriter.Write(task.Get(Tsk.NotesRTF));
11    doc = new Document(stream);
12}
13
14NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
15foreach (Aspose.Words.Drawing.Shape shape in shapes)
16{
17    if (shape.OleFormat != null)
18    {
19        if (!shape.OleFormat.IsLink)
20        {
21            // Extract OLE Word object
22            if (shape.OleFormat.ProgId == "Word.Document.12")
23            {
24                MemoryStream stream = new MemoryStream();
25                shape.OleFormat.Save(stream);
26
27                Document newDoc = new Document(stream);
28                newDoc.Save("RetrieveTaskEmbeddedDocuments_out.doc");
29            }
30        }
31    }
32}

Notes

Résumé

En combinant aspose.tasks et aspose.words, les développeurs peuvent extraire des documents intégrés à partir de notes de tâche stockées dans les fichiers MPP. Cette approche est particulièrement utile lorsque les fichiers MPP sont utilisés pour transporter des spécifications ou des pièces jointes supplémentaires via le champ Notes.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.