ResourceSavingCallback
Contenuti
[
Nascondere
]XamlFixedSaveOptions.ResourceSavingCallback property
Permette di controllare come vengono salvate le risorse (immagini e caratteri) quando un documento viene esportato nel formato Xaml a pagina fissa.
public IResourceSavingCallback ResourceSavingCallback { get; set; }
Esempi
Mostra come stampare gli URI delle risorse collegate create durante la conversione di un documento in formato .xaml.
public void ResourceFolder()
{
Document doc = new Document(MyDir + "Rendering.docx");
ResourceUriPrinter callback = new ResourceUriPrinter();
// Crea un oggetto "XamlFixedSaveOptions", che possiamo passare al metodo "Save" del documento
// per modificare il modo in cui salviamo il documento nel formato di salvataggio XAML.
XamlFixedSaveOptions options = new XamlFixedSaveOptions();
Assert.AreEqual(SaveFormat.XamlFixed, options.SaveFormat);
// Utilizzare la proprietà "ResourcesFolder" per assegnare una cartella nel file system locale in cui
// Aspose.Words salverà tutte le risorse collegate del documento, come immagini e caratteri.
options.ResourcesFolder = ArtifactsDir + "XamlFixedResourceFolder";
// Utilizzare la proprietà "ResourcesFolderAlias" per utilizzare questa cartella
// quando si costruiscono URI di immagine invece del nome della cartella delle risorse.
options.ResourcesFolderAlias = ArtifactsDir + "XamlFixedFolderAlias";
options.ResourceSavingCallback = callback;
// Una cartella specificata da "ResourcesFolderAlias" dovrà contenere le risorse invece di "ResourcesFolder".
// Dobbiamo garantire che la cartella esista prima che i flussi di callback possano inserirvi le proprie risorse.
Directory.CreateDirectory(options.ResourcesFolderAlias);
doc.Save(ArtifactsDir + "XamlFixedSaveOptions.ResourceFolder.xaml", options);
foreach (string resource in callback.Resources)
Console.WriteLine(resource);
}
/// <summary>
/// Conta e stampa gli URI delle risorse create durante la conversione in .xaml fisso.
/// </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}");
// Se specificassimo un alias della cartella delle risorse, avremmo anche bisogno
// per reindirizzare ciascun flusso per inserire la relativa risorsa nella cartella alias.
args.ResourceStream = new FileStream(args.ResourceFileUri, FileMode.Create);
args.KeepResourceStreamOpen = false;
}
public List<string> Resources { get; }
}
Guarda anche
- interface IResourceSavingCallback
- class XamlFixedSaveOptions
- spazio dei nomi Aspose.Words.Saving
- assemblea Aspose.Words