ResourcesFolder
HtmlFixedSaveOptions.ResourcesFolder property
Spécifie le dossier physique dans lequel les ressources (images, polices, css) sont enregistrées lors de l’exportation d’un document au format HTML. La valeur par défaut estnul
.
public string ResourcesFolder { get; set; }
Remarques
N’a d’effet que siExportEmbeddedImages
la propriété estFAUX
.
Lorsque vous enregistrez unDocument
au format Html, Aspose.Words doit enregistrer toutes les images intégrées dans le document sous forme de fichiers autonomes.ResourcesFolder
vous permet de spécifier où les images seront enregistrées etResourcesFolderAlias
permet de spécifier comment les URI des images seront construits.
Si vous enregistrez un document dans un fichier et fournissez un nom de fichier, Aspose.Words, par défaut, enregistre les images dans le même dossier où le fichier du document est enregistré.ResourcesFolder
pour remplacer ce comportement.
Si vous enregistrez un document dans un flux, Aspose.Words ne dispose pas de dossier pour les images, mais doit tout de même les enregistrer quelque part. Dans ce cas, vous devez spécifier un dossier accessible, à l’aide de l’optionResourcesFolder
propriété
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 lorsqu'elles sont converties 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 les 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 placer 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
- class HtmlFixedSaveOptions
- espace de noms Aspose.Words.Saving
- Assemblée Aspose.Words