IFontSavingCallback
Contenu
[
Cacher
]IFontSavingCallback interface
Implémentez cette interface si vous souhaitez recevoir des notifications et contrôler comment Aspose.Words enregistre les polices lors de l’exportation d’un document au format HTML.
public interface IFontSavingCallback
Méthodes
Nom | La description |
---|---|
FontSaving(FontSavingArgs) | Appelé lorsqu’Aspose.Words est sur le point d’enregistrer une ressource de police. |
Exemples
Montre comment définir une logique personnalisée pour l’exportation des polices lors de l’enregistrement au format HTML.
public void SaveExportedFonts()
{
Document doc = new Document(MyDir + "Rendering.docx");
// Configurez un objet SaveOptions pour exporter les polices vers des fichiers séparés.
// Définissez un rappel qui gérera l'enregistrement des polices de manière personnalisée.
HtmlSaveOptions options = new HtmlSaveOptions
{
ExportFontResources = true,
FontSavingCallback = new HandleFontSaving()
};
// Le rappel exportera les fichiers .ttf et les enregistrera avec le document de sortie.
doc.Save(ArtifactsDir + "HtmlSaveOptions.SaveExportedFonts.html", options);
foreach (string fontFilename in Array.FindAll(Directory.GetFiles(ArtifactsDir), s => s.EndsWith(".ttf")))
{
Console.WriteLine(fontFilename);
}
}
/// <summary>
/// Imprime les informations sur les polices exportées et les enregistre dans le même dossier système local que leur sortie .html.
/// </summary>
public class HandleFontSaving : IFontSavingCallback
{
void IFontSavingCallback.FontSaving(FontSavingArgs args)
{
Console.Write($"Font:\t{args.FontFamilyName}");
if (args.Bold) Console.Write(", bold");
if (args.Italic) Console.Write(", italic");
Console.WriteLine($"\nSource:\t{args.OriginalFileName}, {args.OriginalFileSize} bytes\n");
// Nous pouvons également accéder au document source à partir d'ici.
Assert.True(args.Document.OriginalFileName.EndsWith("Rendering.docx"));
Assert.True(args.IsExportNeeded);
Assert.True(args.IsSubsettingNeeded);
// Il existe deux manières de sauvegarder une police exportée.
// 1 - Enregistrez-le dans un emplacement du système de fichiers local :
args.FontFileName = args.OriginalFileName.Split(Path.DirectorySeparatorChar).Last();
// 2 - Enregistrez-le dans un flux :
args.FontStream =
new FileStream(ArtifactsDir + args.OriginalFileName.Split(Path.DirectorySeparatorChar).Last(), FileMode.Create);
Assert.False(args.KeepFontStreamOpen);
}
}
Voir également
- espace de noms Aspose.Words.Saving
- Assemblée Aspose.Words