Auto Hyphenation in Word documents
The following example shows how you can control automatic hyphenation using available hyphenation options in GemBox.Document.
using GemBox.Document;
using GemBox.Document.Hyphenation;
using System.Globalization;
class Program
{
static void Main()
{
// If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// Load Word document from file's path.
var document = DocumentModel.Load("AutoHyphenation.docx");
// Get Word document's hyphenation options.
var hyphenationOptions = document.HyphenationOptions;
// Enable auto hyphenation, set the maximum number of consecutive lines,
// and disable hyphenation of words in all capital letters.
hyphenationOptions.AutoHyphenation = true;
hyphenationOptions.ConsecutiveHyphensLimit = 3;
hyphenationOptions.HyphenateCaps = false;
// Save output file.
document.Save("Output.docx");
}
}
Imports GemBox.Document
Imports GemBox.Document.Hyphenation
Imports System.Globalization
Module Program
Sub Main()
' If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
' Load Word document from file's path.
Dim document = DocumentModel.Load("AutoHyphenation.docx")
' Get Word document's hyphenation options.
Dim hyphenationOptions = document.HyphenationOptions
' Enable auto hyphenation, set the maximum number of consecutive lines,
' and disable hyphenation of words in all capital letters.
hyphenationOptions.AutoHyphenation = True
hyphenationOptions.ConsecutiveHyphensLimit = 3
hyphenationOptions.HyphenateCaps = False
' Save output file.
document.Save("Output.docx")
End Sub
End Module

GemBox.Document supports auto hyphenation while exporting to PDF, XPS, and image file formats.
Register a hyphenation dictionary
In addition to the built-in English hyphenation dictionary, custom hyphenation dictionaries can be registered for other languages. You can use any publicly available TeX based hyphenation dictionary, a .tex file containing hyphenation patterns with specific encoding.
The following example shows how you can register a custom hyphenation dictionary.
using GemBox.Document;
using GemBox.Document.Hyphenation;
using System.Globalization;
class Program
{
static void Main()
{
// If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// Load Word document from file's path.
var document = DocumentModel.Load("AutoHyphenation.docx");
// Enable auto hyphenation.
document.HyphenationOptions.AutoHyphenation = true;
// Load hyphenation dictionary from file's path.
var hyphenationDictionary = TexHyphenationDictionary.Load("HyphDictEnGb.tex");
// Set loaded hyphenation dictionary for specified language.
DocumentModel.HyphenationDictionaries[new CultureInfo("en-GB")] = hyphenationDictionary;
// Save output file.
document.Save("OutputCustomHyphenation.pdf");
}
}
Imports GemBox.Document
Imports GemBox.Document.Hyphenation
Imports System.Globalization
Module Program
Sub Main()
' If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
' Load Word document from file's path.
Dim document = DocumentModel.Load("AutoHyphenation.docx")
' Enable auto hyphenation.
document.HyphenationOptions.AutoHyphenation = True
' Load hyphenation dictionary from file's path.
Dim hyphenationDictionary = TexHyphenationDictionary.Load("HyphDictEnGb.tex")
' Set loaded hyphenation dictionary for specified language.
DocumentModel.HyphenationDictionaries(New CultureInfo("en-GB")) = hyphenationDictionary
' Save output file.
document.Save("OutputCustomHyphenation.pdf")
End Sub
End Module

Hyphenation of multi-language documents
The following example shows how you can delay the loading of hyphenation dictionaries for multi-language documents.
using GemBox.Document;
using GemBox.Document.Hyphenation;
using System.Globalization;
class Program
{
static void Main()
{
// If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// Load Word document from file's path.
var document = DocumentModel.Load("AutoHyphenationML.docx");
// Enable auto hyphenation.
document.HyphenationOptions.AutoHyphenation = true;
// Load hyphenation dictionaries on demand and set them for specified languages.
DocumentModel.HyphenationDictionaries.HyphenationDictionaryLoading +=
(sender, e) =>
{
switch (e.CultureInfo.Name)
{
case "en-GB":
e.HyphenationDictionary = TexHyphenationDictionary.Load("HyphDictEnGb.tex");
break;
case "de-DE":
e.HyphenationDictionary = TexHyphenationDictionary.Load("HyphDictDe.tex");
break;
case "es-ES":
e.HyphenationDictionary = TexHyphenationDictionary.Load("HyphDictEs.tex");
break;
}
};
// Save output file.
document.Save("OutputMultiLanguage.pdf");
}
}
Imports GemBox.Document
Imports GemBox.Document.Hyphenation
Imports System.Globalization
Module Program
Sub Main()
' If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
' Load Word document from file's path.
Dim document = DocumentModel.Load("AutoHyphenationML.docx")
' Enable auto hyphenation.
document.HyphenationOptions.AutoHyphenation = True
' Load hyphenation dictionaries on demand and set them for specified languages.
AddHandler DocumentModel.HyphenationDictionaries.HyphenationDictionaryLoading,
Sub(sender, e)
Select Case e.CultureInfo.Name
Case "en-GB"
e.HyphenationDictionary = TexHyphenationDictionary.Load("HyphDictEnGb.tex")
Exit Select
Case "de-DE"
e.HyphenationDictionary = TexHyphenationDictionary.Load("HyphDictDe.tex")
Exit Select
Case "es-ES"
e.HyphenationDictionary = TexHyphenationDictionary.Load("HyphDictEs.tex")
Exit Select
End Select
End Sub
' Save output file.
document.Save("OutputMultiLanguage.pdf")
End Sub
End Module
