Як реалізувати префікс для вкладених ресурсів
Під час роботи з файлами Microsoft Project проекти можуть містити вкладені ресурси такі як зображення або додаткові файли, вбудовані всередину вихідних форматів (наприклад, файли PNG всередині SVG). Ефективне керування цими ресурсами важливе для забезпечення того, щоб експортовані файли залишалися добре структурованими та портативними. За допомогою 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}
Поширені запитання
Питання: Що таке вкладені ресурси в експорті Microsoft Project?
- Вкладені ресурси — це додаткові файли, такі як зображення або вбудовані об’єкти, що зберігаються поряд із основним виводом проекту (наприклад, файли PNG в документах SVG).
Питання: Чи потрібно встановлювати Microsoft Project, щоб працювати з вкладеними ресурсами?
- Ні. Aspose.Tasks for .NET працює незалежно від Microsoft Project і може програмно обробляти експорт ресурсів.
Питання: У яких форматах ResourceSavingArgs.NestedUri
найчастіше використовується?
- Це особливо корисно при експорті у SVG, HTMLабо інші формати, що включають кілька пов’язаних файлів.
Питання: Чи можу я налаштувати структуру папок для вкладених ресурсів?
- Так. Ви можете визначити власну ієрархію папок та схему іменування файлів, встановивши
NestedUri
властивість відповідним чином.
Висновок
Керування вкладеними ресурсами під час експорту є важливим для підтримання організованості та надійності виводів проекту. За допомогою ResourceSavingArgs.NestedUri
властивості в Aspose.Tasks for .NET, розробники можуть легко визначати власні префікси та структури папок, забезпечуючи правильне збереження всіх вбудованих файлів. Такий підхід гарантує послідовний, портативний та професійний експорт файлів проекту.