XamlFixedSaveOptionsResourcesFolderAlias Property |
Namespace: Aspose.Words.Saving
When you save a Document in fixed page Xaml format, Aspose.Words needs to save all images embedded in the document as standalone files. ResourcesFolder allows you to specify where the images will be saved and ResourcesFolderAlias allows to specify how the image URIs will be constructed.
public void ResourceFolder() { // Open a document which contains resources Document doc = new Document(MyDir + "Rendering.docx"); XamlFixedSaveOptions options = new XamlFixedSaveOptions { SaveFormat = SaveFormat.XamlFixed, ResourcesFolder = ArtifactsDir + "XamlFixedResourceFolder", ResourcesFolderAlias = ArtifactsDir + "XamlFixedFolderAlias", ResourceSavingCallback = new ResourceUriPrinter() }; // A folder specified by ResourcesFolderAlias will contain the resources instead of ResourcesFolder // We must ensure the folder exists before the streams can put their resources into it Directory.CreateDirectory(options.ResourcesFolderAlias); doc.Save(ArtifactsDir + "XamlFixedSaveOptions.ResourceFolder.xaml", options); } /// <summary> /// Counts and prints URIs of resources created during conversion to to fixed .xaml. /// </summary> private class ResourceUriPrinter : IResourceSavingCallback { void IResourceSavingCallback.ResourceSaving(ResourceSavingArgs args) { // If we set a folder alias in the SaveOptions object, it will be printed here Console.WriteLine($"Resource #{++mSavedResourceCount} \"{args.ResourceFileName}\""); Console.WriteLine("\t" + args.ResourceFileUri); // If we specified a ResourcesFolderAlias we will also need to redirect each stream to put its resource in that folder args.ResourceStream = new FileStream(args.ResourceFileUri, FileMode.Create); args.KeepResourceStreamOpen = false; } private int mSavedResourceCount; }