Recuperar documentos integrados de las notas de una tarea
Descripción general
En los archivos del proyecto de Microsoft (MPP), las notas de tareas pueden contener documentos integrados, como .txt
, .doc
o .rtf
archivos. Estos objetos integrados generalmente se almacenan en formato rtf dentro de la propiedad ’notasrtf` de la tarea.
Mientras que Aspose.Tasks para .NET solo es no admite completamente el análisis o la extracción de estos documentos integrados, se puede combinar con Aspose.Words para .NET para interpretar el contenido RTF y recuperar los archivos incrustados.
Este artículo demuestra cómo leer los datos notasrtf
de una tarea y extraer documentos integrados usando Aspose.Words.
Requisitos
Antes de continuar, asegúrese de:
- Referencia Aspose.Tasks para .NET para acceder a los datos de la tarea;
- Referencia Aspose.Words para .NET para analizar y guardar objetos integrados del contenido RTF.
Puede instalar ambas bibliotecas a través de Nuget:
1Install-Package Aspose.Tasks
2Install-Package Aspose.Words
Recuperar documentos integrados de las notas de la tarea
El siguiente fragmento de código:
- Carga el archivo MPP usando
Aspose.Tasks
; - Lee el contenido
notasrtf
de cada tarea; - Analiza RTF usando
Aspose.words
; - Guarda cada objeto incrustado (si se encuentra) en el disco.
✅ Ejemplo de código
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}
Notas
- Los archivos de salida preservarán su formato original y nombre de archivo si están disponibles;
- Solo notas basadas en RTF con objetos OLE integrados se pueden procesar;
- Asegúrese de manejar las excepciones al analizar RTF no compatible o malformado.
Resumen
Al combinar Aspose.Tasks y Aspose.Words, los desarrolladores pueden extraer documentos integrados de las notas de tareas almacenadas en los archivos MPP. Este enfoque es especialmente útil cuando los archivos MPP se utilizan para llevar especificaciones o archivos adjuntos adicionales a través del campo Notas.