So implementieren Sie ein Ressourcenpräfix für verschachtelte Ressourcen

Beim Arbeiten mit Microsoft Project-Dateien können Projekte verschachtelte Ressourcen wie Bilder oder zusätzliche Dateien, die in Ausgabedateiformaten eingebettet sind (zum Beispiel PNG-Dateien innerhalb von SVGs). Die effiziente Verwaltung dieser Ressourcen ist wichtig, um sicherzustellen, dass exportierte Dateien gut strukturiert und portabel bleiben. Mit Aspose.Tasks for .NET, können Sie steuern, wie verschachtelte Ressourcen während Exportvorgängen gespeichert werden. Die API stellt die ResourceSavingArgs.NestedUri Eigenschaft, die Entwicklern erlaubt, ein Präfix oder einen benutzerdefinierten Pfad festzulegen, um zugehörige Ressourcen in einen separaten Ordner zu speichern. Dies ist besonders nützlich beim Export in Formate wie SVG, HTML oder andere, die mehrere verknüpfte Dateien erfordern.

Ressourcenpräfix für verschachtelte Ressourcen

Die ResourceSavingArgs.NestedUri Eigenschaft ermöglicht die Konfiguration von Ressourcenpräfixen für verschachtelte Ressourcen. Dies stellt sicher, dass alle zugehörigen Dateien (z. B. eingebettete Bilder) korrekt gespeichert und referenziert werden, ohne Pfadkonflikte.

Codebeispiel

Das folgende Codebeispiel zeigt, wie ein Ressourcenpräfix beim Export verschachtelter Ressourcen angewendet wird. Dieser Ausschnitt zeigt, wie der Speicherprozess abgefangen, eine benutzerdefinierte URI zugewiesen und sichergestellt wird, dass alle verschachtelten Dateien im richtigen Verzeichnis mit einer definierten Namenskonvention abgelegt werden.

 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}

Häufig gestellte Fragen

F: Was sind verschachtelte Ressourcen bei Microsoft Project-Exporten?

F: Muss Microsoft Project installiert sein, um verschachtelte Ressourcen zu verarbeiten?

F: In welchen Formaten wird ResourceSavingArgs.NestedUri häufig verwendet?

F: Kann ich die Ordnerstruktur für verschachtelte Ressourcen anpassen?

Fazit

Die Verwaltung verschachtelter Ressourcen während des Exports ist entscheidend, um Projektdateien organisiert und zuverlässig zu halten. Mit der ResourceSavingArgs.NestedUri Eigenschaft in Aspose.Tasks for .NET, können Entwickler mühelos benutzerdefinierte Präfixe und Ordnerstrukturen festlegen und sicherstellen, dass alle eingebetteten Dateien korrekt gespeichert werden. Dieser Ansatz gewährleistet konsistente, portable und professionelle Projektdateiexporte.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.