FontSavingArgs

FontSavingArgs class

Fournit des données pour leFontSaving événement.

Pour en savoir plus, visitez leEnregistrer un document article documentaire.

public class FontSavingArgs

Propriétés

NomLa description
Bold { get; }Indique si la police actuelle est en gras.
Document { get; }Obtient l’objet document en cours d’enregistrement.
FontFamilyName { get; }Indique le nom de la famille de police actuelle.
FontFileName { get; set; }Obtient ou définit le nom du fichier (sans chemin) dans lequel la police sera enregistrée.
FontStream { get; set; }Permet de spécifier le flux dans lequel la police sera enregistrée.
IsExportNeeded { get; set; }Permet de spécifier si la police actuelle sera exportée comme ressource de police. La valeur par défaut estvrai .
IsSubsettingNeeded { get; set; }Permet de spécifier si la police actuelle sera sous-ensemble avant de l’exporter en tant que ressource de police.
Italic { get; }Indique si la police actuelle est en italique.
KeepFontStreamOpen { get; set; }Spécifie si Aspose.Words doit garder le flux ouvert ou le fermer après avoir enregistré une police.
OriginalFileName { get; }Obtient le nom du fichier de police d’origine avec une extension.
OriginalFileSize { get; }Obtient la taille du fichier de police d’origine.

Remarques

Lorsque Aspose.Words enregistre un document au format HTML ou dans des formats associés etExportFontResources est défini survrai, il enregistre chaque sujet de police pour l’exporter dans un fichier séparé.

FontSavingArgs contrôle si une ressource de police particulière doit être exportée et comment.

FontSavingArgspermet également de redéfinir la façon dont les noms de fichiers de polices sont générés ou de contourner complètement l’enregistrement des polices dans des fichiers en fournissant vos propres objets de flux.

Pour décider d’enregistrer ou non une ressource de police particulière, utilisez l’optionIsExportNeeded propriété.

Pour enregistrer les polices dans des flux plutôt que dans des fichiers, utilisez l’optionFontStream propriété.

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