ImagesFolderAlias

XamlFlowSaveOptions.ImagesFolderAlias property

Specifica il nome della cartella utilizzata per costruire URI di immagine scritti in un documento XAML. Il valore predefinito è una stringa vuota.

public string ImagesFolderAlias { get; set; }

Osservazioni

Quando salvi un fileDocument nel formato XAML, Aspose.Words deve salvare tutte le immagini incorporate nel documento come file autonomi.ImagesFolder ti consente di specificare dove verranno salvate le immagini eImagesFolderAlias consente di specificare come verranno costruiti gli URI dell’immagine.

SeImagesFolderAlias non è una stringa vuota, lo sarà l’URI dell’immagine scritto in XAMLImagesFolderAlias + <nome file immagine>.

SeImagesFolderAliasè una stringa vuota, l’URI dell’immagine scritto in XAML saràCartella Immagini + <nome file immagine>.

SeImagesFolderAlias è impostato per ‘.’ (punto), il nome del file immagine verrà scritto in XAML senza percorso indipendentemente dalle altre opzioni.

Esempi

Mostra come stampare i nomi file delle immagini collegate create durante la conversione di un documento in formato flusso .xaml.

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

    ImageUriPrinter callback = new ImageUriPrinter(ArtifactsDir + "XamlFlowImageFolderAlias");

    // Crea un oggetto "XamlFlowSaveOptions", che possiamo passare al metodo "Save" del documento
    // per modificare il modo in cui salviamo il documento nel formato di salvataggio XAML.
    XamlFlowSaveOptions options = new XamlFlowSaveOptions();

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

    // Utilizzare la proprietà "ImagesFolder" per assegnare una cartella nel file system locale in cui
    // Aspose.Words salverà tutte le immagini collegate del documento.
    options.ImagesFolder = ArtifactsDir + "XamlFlowImageFolder";

    // Utilizzare la proprietà "ImagesFolderAlias" per utilizzare questa cartella
    // quando si costruiscono URI di immagine invece del nome della cartella delle immagini.
    options.ImagesFolderAlias = ArtifactsDir + "XamlFlowImageFolderAlias";

    options.ImageSavingCallback = callback;

    // Una cartella specificata da "ImagesFolderAlias" dovrà contenere le risorse invece di "ImagesFolder".
    // Dobbiamo garantire che la cartella esista prima che i flussi di callback possano inserirvi le proprie risorse.
    Directory.CreateDirectory(options.ImagesFolderAlias);

    doc.Save(ArtifactsDir + "XamlFlowSaveOptions.ImageFolder.xaml", options);

    foreach (string resource in callback.Resources)
        Console.WriteLine($"{callback.ImagesFolderAlias}/{resource}");
}

/// <summary>
/// Conta e stampa i nomi file delle immagini mentre il documento principale viene convertito in formato flusso .xaml.
/// </summary>
private class ImageUriPrinter : IImageSavingCallback
{
    public ImageUriPrinter(string imagesFolderAlias)
    {
        ImagesFolderAlias = imagesFolderAlias;
        Resources = new List<string>();
    }

    void IImageSavingCallback.ImageSaving(ImageSavingArgs args)
    {
        Resources.Add(args.ImageFileName);

        // Se specificassimo un alias di cartella immagine, avremmo anche bisogno
        // per reindirizzare ciascun flusso per inserire la relativa immagine nella cartella alias.
        args.ImageStream = new FileStream($"{ImagesFolderAlias}/{args.ImageFileName}", FileMode.Create);
        args.KeepImageStreamOpen = false;
    }

    public string ImagesFolderAlias { get; }
    public List<string> Resources { get; }
}

Guarda anche