Hyphenation

Hyphenation class

Fournit des méthodes pour travailler avec des dictionnaires de césure. Ces dictionnaires indiquent où les mots d’une langue donnée peuvent être coupés.

Pour en savoir plus, visitez leTravailler avec la césure article de documentation.

public static class Hyphenation

Propriétés

NomLa description
static Callback { get; set; }Obtient ou définit l’interface de rappel utilisée pour demander des dictionnaires lors de la création de la mise en page du document. Cela permet de retarder le chargement des dictionnaires, ce qui peut être utile lors du traitement de documents dans de nombreuses langues.
static WarningCallback { get; set; }Appelé lors du chargement de modèles de césure, lorsqu’un problème est détecté qui pourrait entraîner une perte de fidélité du formatage.

Méthodes

NomLa description
static IsDictionaryRegistered(string)RetoursFAUX si pour la langue spécifiée il n’y a pas de dictionnaire enregistré ou si le dictionnaire enregistré est nul,vrai sinon.
static RegisterDictionary(string, Stream)Enregistre et charge un dictionnaire de césure pour la langue spécifiée à partir d’un flux. Lève une requête si le dictionnaire est illisible ou son format est invalide.
static RegisterDictionary(string, string)Enregistre et charge un dictionnaire de césure pour la langue spécifiée à partir d’un fichier. L’erreur est générée si le dictionnaire est illisible ou son format est invalide.
static UnregisterDictionary(string)Annule l’enregistrement d’un dictionnaire de césure pour la langue spécifiée.

Exemples

Montre comment ouvrir et enregistrer un dictionnaire à partir d’un fichier.

public void RegisterDictionary()
{
    // Configurez un rappel qui suit les avertissements qui se produisent lors de l'enregistrement du dictionnaire de césure.
    WarningInfoCollection warningInfoCollection = new WarningInfoCollection();
    Hyphenation.WarningCallback = warningInfoCollection;

    // Enregistrez un dictionnaire de césure anglais (US) par flux.
    Stream dictionaryStream = new FileStream(MyDir + "hyph_en_US.dic", FileMode.Open);
    Hyphenation.RegisterDictionary("en-US", dictionaryStream);

    Assert.AreEqual(0, warningInfoCollection.Count);

    // Ouvrez un document avec des paramètres régionaux que Microsoft Word ne peut pas couper sur une machine anglaise, comme l'allemand.
    Document doc = new Document(MyDir + "German text.docx");

    // Pour couper ce document lors de l'enregistrement, nous avons besoin d'un dictionnaire de coupure pour le code de langue « de-CH ».
    // Ce rappel gérera la demande automatique de ce dictionnaire.
    Hyphenation.Callback = new CustomHyphenationDictionaryRegister();

    // Lorsque nous enregistrons le document, la césure allemande prend effet.
    doc.Save(ArtifactsDir + "Hyphenation.RegisterDictionary.pdf");

    // Ce dictionnaire contient deux modèles identiques, ce qui déclenchera un avertissement.
    Assert.AreEqual(1, warningInfoCollection.Count);
    Assert.AreEqual(WarningType.MinorFormattingLoss, warningInfoCollection[0].WarningType);
    Assert.AreEqual(WarningSource.Layout, warningInfoCollection[0].Source);
    Assert.AreEqual("Hyphenation dictionary contains duplicate patterns. The only first found pattern will be used. " +
                    "Content can be wrapped differently.", warningInfoCollection[0].Description);

}

/// <summary>
/// Associe les codes de langue ISO aux noms de fichiers du système local pour les fichiers de dictionnaire de césure.
/// </summary>
private class CustomHyphenationDictionaryRegister : IHyphenationCallback
{
    public CustomHyphenationDictionaryRegister()
    {
        mHyphenationDictionaryFiles = new Dictionary<string, string>
        {
            { "en-US", MyDir + "hyph_en_US.dic" },
            { "de-CH", MyDir + "hyph_de_CH.dic" }
        };
    }

    public void RequestDictionary(string language)
    {
        Console.Write("Hyphenation dictionary requested: " + language);

        if (Hyphenation.IsDictionaryRegistered(language))
        {
            Console.WriteLine(", is already registered.");
            return;
        }

        if (mHyphenationDictionaryFiles.ContainsKey(language))
        {
            Hyphenation.RegisterDictionary(language, mHyphenationDictionaryFiles[language]);
            Console.WriteLine(", successfully registered.");
            return;
        }

        Console.WriteLine(", no respective dictionary file known by this Callback.");
    }

    private readonly Dictionary<string, string> mHyphenationDictionaryFiles;
}

Voir également