入れ子リソースの接頭辞を実装する方法
Microsoft Project ファイルを扱う際、プロジェクトには 入れ子のリソース のように、出力形式内に埋め込まれた画像や追加ファイルが含まれることがあります(例えば、SVG 内の PNG ファイル)。これらのリソースを効率的に管理することは、エクスポートされたファイルが適切に構造化され、移植可能であることを保証するために重要です。With Aspose.Tasks for .NET、エクスポート操作中に入れ子のリソースがどのように保存されるかを制御できます。API は ResourceSavingArgs.NestedUri プロパティを提供しており、これにより関連リソースを別フォルダに保存するための接頭辞やカスタムパスを定義できます。これは特に、SVG や HTML のように複数の関連ファイルを必要とする形式にエクスポートする場合に有用です。
入れ子リソースの接頭辞
この ResourceSavingArgs.NestedUri プロパティは、入れ子のリソースに対するリソース接頭辞の設定を可能にします。これにより、埋め込み画像などの関連ファイルが正しく保存され、パスの競合なく参照されることが保証されます。
コード例
以下のコード例は、入れ子リソースをエクスポートする際にリソース接頭辞を適用する方法を示します。このスニペットでは、保存プロセスをインターセプトし、カスタム URI を割り当て、すべての入れ子ファイルが定義された命名規則に従って正しいディレクトリに格納されることを確認する方法を示します。
1public class ResourcePrefixForNestedResources : ICssSavingCallback, IFontSavingCallback, IImageSavingCallback
2{
3 public static void Run()
4 {
5 Project project = new Project("New Project.mpp");
6 HtmlSaveOptions options = GetSaveOptions(1);
7 project.Save("document.html", options);
8 }
9
10 public void CssSaving(CssSavingArgs args)
11 {
12 FileStream stream = new FileStream("css/" + args.FileName, FileMode.Create);
13 args.Stream = stream;
14 args.KeepStreamOpen = false;
15 args.Uri = "css/" + args.FileName;
16 }
17
18 public void FontSaving(FontSavingArgs args)
19 {
20 FileStream stream = new FileStream("fonts/" + args.FileName, FileMode.Create);
21 args.Stream = stream;
22 args.KeepStreamOpen = false;
23 args.Uri = "fonts/" + args.FileName;
24 }
25
26 public void ImageSaving(ImageSavingArgs args)
27 {
28 if (args.FileName.EndsWith("png"))
29 {
30 FileStream stream1 = new FileStream("resources/nestedResources/" + args.FileName, FileMode.Create);
31 args.Stream = stream1;
32 args.KeepStreamOpen = false;
33 args.Uri = "resources/" + args.FileName;
34 args.NestedUri = "nestedResources/" + args.FileName;
35 }
36 else
37 {
38 FileStream stream2 = new FileStream("resources/" + args.FileName, FileMode.Create);
39 args.Stream = stream2;
40 args.KeepStreamOpen = false;
41 args.Uri = "resources/" + args.FileName;
42 }
43 }
44
45 private static HtmlSaveOptions GetSaveOptions(int pageNumber)
46 {
47 HtmlSaveOptions options = new HtmlSaveOptions
48 {
49 Pages = new List<int>(),
50 IncludeProjectNameInPageHeader = false,
51 IncludeProjectNameInTitle = false,
52 PageSize = PageSize.A3,
53 Timescale = Timescale.ThirdsOfMonths,
54 ReduceFooterGap = true,
55 FontFaceTypes = FontFaceType.Ttf,
56 ExportCss = ResourceExportType.AsFile,
57 ExportFonts = ResourceExportType.AsFile,
58 ExportImages = ResourceExportType.AsFile
59 };
60
61 ResourcePrefixForNestedResources program = new ResourcePrefixForNestedResources();
62 options.FontSavingCallback = program;
63 options.CssSavingCallback = program;
64 options.ImageSavingCallback = program;
65
66 options.Pages.Clear();
67 options.Pages.Add(pageNumber);
68
69 if (!Directory.Exists("fonts"))
70 {
71 Directory.CreateDirectory("fonts");
72 }
73
74 if (!Directory.Exists("resources"))
75 {
76 Directory.CreateDirectory("resources");
77 }
78
79 if (!Directory.Exists("nestedResources"))
80 {
81 Directory.CreateDirectory("resources/nestedResources");
82 }
83
84 if (!Directory.Exists("css"))
85 {
86 Directory.CreateDirectory("css");
87 }
88
89 return options;
90 }
91}よくある質問
Q: Microsoft Project のエクスポートにおける入れ子リソースとは何ですか?
- 入れ子リソースとは、メインのプロジェクト出力に添えられて保存される画像や埋め込みオブジェクトなどの追加ファイルのことです(例:SVG 内の PNG ファイル)。
Q: 入れ子リソースを扱うために Microsoft Project をインストールする必要がありますか?
- いいえ。Aspose.Tasks for .NET は Microsoft Project に依存せず、プログラムでリソースのエクスポートを処理できます。
Q: どの形式で ResourceSavingArgs.NestedUri 一般的に使用されますか?
- これは特に SVG、 HTML、または複数の関連ファイルを含むその他の形式にエクスポートする場合に有用です。
Q: 入れ子リソースのフォルダ構成をカスタマイズできますか?
- はい。
NestedUriプロパティを設定することで、独自のフォルダ階層やファイル命名規則を定義できます。
まとめ
エクスポート時に入れ子リソースを管理することは、プロジェクト出力を整理され信頼できる状態に保つために不可欠です。With the ResourceSavingArgs.NestedUri プロパティにより、 Aspose.Tasks for .NET、開発者は簡単にカスタムの接頭辞やフォルダ構造を定義でき、すべての埋め込みファイルが正しく保存されるようになります。このアプローチは、一貫性があり移植可能で専門的なプロジェクトファイルのエクスポートを保証します。