ResourceSavingCallback
Contenu
[
Cacher
]HtmlFixedSaveOptions.ResourceSavingCallback property
Permet de contrôler la façon dont les ressources (images, polices et CSS) sont enregistrées lorsqu’un document est exporté au format HTML de page fixe.
public IResourceSavingCallback ResourceSavingCallback { get; set; }
Exemples
Montre comment utiliser un rappel pour imprimer les URI des ressources externes créées lors de la conversion d’un document en HTML.
public void HtmlFixedResourceFolder()
{
Document doc = new Document(MyDir + "Rendering.docx");
ResourceUriPrinter callback = new ResourceUriPrinter();
HtmlFixedSaveOptions options = new HtmlFixedSaveOptions
{
SaveFormat = SaveFormat.HtmlFixed,
ExportEmbeddedImages = false,
ResourcesFolder = ArtifactsDir + "HtmlFixedResourceFolder",
ResourcesFolderAlias = ArtifactsDir + "HtmlFixedResourceFolderAlias",
ShowPageBorder = false,
ResourceSavingCallback = callback
};
// Un dossier spécifié par ResourcesFolderAlias contiendra les ressources au lieu de ResourcesFolder.
// Nous devons nous assurer que le dossier existe avant que les flux puissent y placer leurs ressources.
Directory.CreateDirectory(options.ResourcesFolderAlias);
doc.Save(ArtifactsDir + "HtmlFixedSaveOptions.HtmlFixedResourceFolder.html", options);
Console.WriteLine(callback.GetText());
string[] resourceFiles = Directory.GetFiles(ArtifactsDir + "HtmlFixedResourceFolderAlias");
Assert.False(Directory.Exists(ArtifactsDir + "HtmlFixedResourceFolder"));
Assert.AreEqual(6, resourceFiles.Count(f => f.EndsWith(".jpeg") || f.EndsWith(".png") || f.EndsWith(".css")));
}
/// <summary>
/// Compte et imprime les URI des ressources contenues par au fur et à mesure de leur conversion en HTML fixe.
/// </summary>
private class ResourceUriPrinter : IResourceSavingCallback
{
void IResourceSavingCallback.ResourceSaving(ResourceSavingArgs args)
{
// Si nous définissons un alias de dossier dans l'objet SaveOptions, nous pourrons l'imprimer à partir d'ici.
mText.AppendLine($"Resource #{++mSavedResourceCount} \"{args.ResourceFileName}\"");
string extension = Path.GetExtension(args.ResourceFileName);
switch (extension)
{
case ".ttf":
case ".woff":
{
// Par défaut, 'ResourceFileUri' utilise le dossier système pour les polices.
// Pour éviter des problèmes sur d'autres plateformes, vous devez spécifier explicitement le chemin des polices.
args.ResourceFileUri = ArtifactsDir + Path.DirectorySeparatorChar + args.ResourceFileName;
break;
}
}
mText.AppendLine("\t" + args.ResourceFileUri);
// Si nous avons spécifié un dossier dans la propriété "ResourcesFolderAlias",
// nous devrons également rediriger chaque flux pour mettre sa ressource dans ce dossier.
args.ResourceStream = new FileStream(args.ResourceFileUri, FileMode.Create);
args.KeepResourceStreamOpen = false;
}
public string GetText()
{
return mText.ToString();
}
private int mSavedResourceCount;
private readonly StringBuilder mText = new StringBuilder();
}
Voir également
- interface IResourceSavingCallback
- class HtmlFixedSaveOptions
- espace de noms Aspose.Words.Saving
- Assemblée Aspose.Words