ResourcesFolder

XamlFixedSaveOptions.ResourcesFolder property

Указывает физическую папку, в которой сохраняются ресурсы (изображения и шрифты) при экспорте документа в формат фиксированной страницы Xaml. По умолчанию: null .

public string ResourcesFolder { get; set; }

Примечания

При сохраненииDocumentв формате фиксированной страницы Xaml Aspose.Words должен сохранять все изображения, встроенные в документ, как отдельные файлы.ResourcesFolder позволяет указать, где будут сохраняться изображения иResourcesFolderAlias позволяет указать, как будут создаваться URI изображения.

Если вы сохраняете документ в файл и указываете имя файла, Aspose.Words по умолчанию сохраняет изображения в том же папку, в которой сохранен файл документа. ИспользуйтеResourcesFolder для переопределения этого поведения.

Если вы сохраняете документ в поток, Aspose.Words не имеет папки для сохранения изображений, но все же необходимо сохранить изображения куда-нибудь. В этом случае необходимо указать доступную папку с помощью свойстваResourcesFolder

Примеры

Показывает, как распечатать URI связанных ресурсов, созданных при преобразовании документа в фиксированный -форма .xaml.

public void ResourceFolder()
{
    Document doc = new Document(MyDir + "Rendering.docx");
    ResourceUriPrinter callback = new ResourceUriPrinter();

     // Создаем объект «XamlFixedSaveOptions», который мы можем передать в документ «Сохранить» method
     // чтобы изменить способ сохранения документа в формате сохранения XAML.
    XamlFixedSaveOptions options = new XamlFixedSaveOptions();

    Assert.AreEqual(SaveFormat.XamlFixed, options.SaveFormat);

     // Используйте свойство "ResourcesFolder", чтобы назначить папку в локальной файловой системе, в которую
     // Aspose.Words сохранит все связанные ресурсы документа, такие как изображения и шрифты.
    options.ResourcesFolder = ArtifactsDir + "XamlFixedResourceFolder";

    // Используйте свойство "ResourcesFolderAlias", чтобы использовать эту папку
     // при построении URI изображения вместо имени папки ресурсов.
    options.ResourcesFolderAlias = ArtifactsDir + "XamlFixedFolderAlias";

    options.ResourceSavingCallback = callback;

     // Папка, указанная в «ResourcesFolderAlias», должна содержать ресурсы вместо «ResourcesFolder».
     // Мы должны убедиться, что папка существует, прежде чем потоки обратного вызова смогут поместить в нее свои ресурсы.
    Directory.CreateDirectory(options.ResourcesFolderAlias);

    doc.Save(ArtifactsDir + "XamlFixedSaveOptions.ResourceFolder.xaml", options);

    foreach (string resource in callback.Resources)
        Console.WriteLine(resource);
}

/// <summary>
 /// Подсчитывает и печатает URI ресурсов, созданных во время преобразования в фиксированный .xaml.
/// </summary>
private class ResourceUriPrinter : IResourceSavingCallback
{
    public ResourceUriPrinter()
    {
        Resources = new List<string>();
    }

    void IResourceSavingCallback.ResourceSaving(ResourceSavingArgs args)
    {
        Resources.Add($"Resource \"{args.ResourceFileName}\"\n\t{args.ResourceFileUri}");

         // Если бы мы указали псевдоним папки ресурсов, нам также потребовалось бы 
         // чтобы перенаправить каждый поток, чтобы поместить его ресурс в папку псевдонима.
        args.ResourceStream = new FileStream(args.ResourceFileUri, FileMode.Create);
        args.KeepResourceStreamOpen = false;
    }

    public List<string> Resources { get; }
}

Смотрите также