タスクのメモから埋め込みドキュメントを取得します
Contents
[
Hide
Show
]概要
Microsoft Projectファイル(MPP)では、タスクノートには埋め込まれたドキュメントを含めることができます。これらの埋め込まれたオブジェクトは、通常、タスクの「notesRtf`プロパティ内にrtf形式に保存されます。
.net単独のaspose.tasksはこれらの埋め込みドキュメントの解析または抽出を完全にサポートしていません**、 ** aspose.words for .net **と組み合わせることができます。
この記事では、タスクから「notesrtf」データを読み取り、aspose.wordsを使用して埋め込みドキュメントを抽出する方法を示しています。
要件
先に進む前に、次のようにしてください。
- 参照**.net**のaspose.tasksタスクデータにアクセスします。
- 参照**.net**のasops.wordsは、RTFコンテンツから埋め込みオブジェクトを解析して保存します。
nuget経由で両方のライブラリをインストールできます。
1Install-Package Aspose.Tasks
2Install-Package Aspose.Words
タスクノートから組み込みドキュメントを取得します
次のコードスニペット:
aspose.tasks
を使用してMPPファイルをロードします。- 各タスクの「notesrtf」コンテンツを読み取ります。
- 「asops.words」を使用してRTFを解析します。
- 各埋め込みオブジェクト(見つかった場合)をディスクに保存します。
✅コードの例
{\ <セクション “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}
メモ
- 出力ファイルは、使用可能な場合は元の形式とファイル名を保持します。
- rtfベースの注埋め込まれたOLEオブジェクトを使用して、処理できます。
- サポートされていないまたは奇形のRTFを解析するときは、必ず例外を処理してください。
まとめ
asops.tasks and aspose.wordsを組み合わせることにより、開発者はMPPファイルに保存されているタスクノートから埋め込まれたドキュメントを抽出できます。このアプローチは、MPPファイルを使用して追加の仕様または添付ファイルをノートフィールドを介して運ぶ場合に特に役立ちます。