Обратный вызов переноса

Введение

Привет! Вы когда-нибудь оказывались в запутанных сложностях форматирования текста, особенно при работе с языками, требующими переносов? Вы не одиноки. Переносы, хотя и имеют решающее значение для правильной компоновки текста, могут быть немного головной болью. Но знаете что? Aspose.Words для .NET прикроет вас. Эта мощная библиотека позволяет вам легко управлять форматированием текста, включая обработку переносов с помощью механизма обратного вызова. Заинтригованы? Давайте углубимся в тонкости того, как можно реализовать обратный вызов переносов с помощью Aspose.Words для .NET.

Предпосылки

Прежде чем приступить к написанию кода, давайте убедимся, что у вас есть все необходимое:

  1. Aspose.Words для .NET: Убедитесь, что у вас есть библиотека. Вы можетескачать здесь.
  2. IDE: среда разработки, подобная Visual Studio.
  3. Базовые знания C#: понимание C# и .NET Framework.
  4. Словари переносов: словари переносов для языков, которые вы планируете использовать.
  5. Лицензия Aspose: Действующая лицензия Aspose. Вы можете получитьвременная лицензия если у вас его нет.

Импорт пространств имен

Для начала давайте импортируем необходимые пространства имен. Это гарантирует, что наш код имеет доступ ко всем классам и методам, которые нам нужны из Aspose.Words.

using Aspose.Words;
using System;
using System.IO;

Шаг 1: Регистрация обратного вызова расстановки переносов

Для начала нам нужно зарегистрировать наш обратный вызов переноса. Здесь мы говорим Aspose.Words использовать нашу пользовательскую логику переноса.

try
{
    // Регистрация обратного вызова расстановки переносов.
    Hyphenation.Callback = new CustomHyphenationCallback();
}
catch (Exception e)
{
    Console.WriteLine($"Error registering hyphenation callback: {e.Message}");
}

Здесь мы создаем экземпляр нашего пользовательского обратного вызова и назначаем егоHyphenation.Callback.

Шаг 2: Определите путь к документу

Далее нам нужно определить каталог, в котором хранятся наши документы. Это важно, так как мы будем загружать и сохранять документы из этого пути.

string dataDir = "YOUR DOCUMENT DIRECTORY";

Заменять"YOUR DOCUMENT DIRECTORY" с фактическим путем к вашим документам.

Шаг 3: Загрузите документ

Теперь загрузим документ, требующий расстановки переносов.

Document document = new Document(dataDir + "German text.docx");

Здесь мы загружаем текстовый документ на немецком языке. Вы можете заменить"German text.docx" с именем файла вашего документа.

Шаг 4: Сохраните документ.

После загрузки документа мы сохраняем его в новом файле, применяя при этом обратный вызов расстановки переносов.

document.Save(dataDir + "TreatmentByCesureWithRecall.pdf");

Эта строка сохраняет документ в формате PDF с применением переносов.

Шаг 5: Обработка исключения словаря «Отсутствуют переносы»

Иногда вы можете столкнуться с проблемой отсутствия словаря переносов. Давайте решим эту проблему.

catch (Exception e) when (e.Message.StartsWith("Missing hyphenation dictionary"))
{
    Console.WriteLine(e.Message);
}
finally
{
    Hyphenation.Callback = null;
}

В этом блоке мы перехватываем конкретное исключение, связанное с отсутствующими словарями, и выводим сообщение.

Шаг 6: Реализация пользовательского класса обратного вызова для расстановки переносов

Теперь давайте реализуемCustomHyphenationCallback класс, который обрабатывает запросы на словари переносов.

public class CustomHyphenationCallback : IHyphenationCallback
{
    public void RequestDictionary(string language)
    {
        string dictionaryFolder = MyDir;
        string dictionaryFullFileName;
        switch (language)
        {
            case "en-US":
                dictionaryFullFileName = Path.Combine(dictionaryFolder, "hyph_en_US.dic");
                break;
            case "de-CH":
                dictionaryFullFileName = Path.Combine(dictionaryFolder, "hyph_de_CH.dic");
                break;
            default:
                throw new Exception($"Missing hyphenation dictionary for {language}.");
        }
        // Зарегистрируйте словарь для нужного языка.
        Hyphenation.RegisterDictionary(language, dictionaryFullFileName);
    }
}

В этом классе,RequestDictionary Метод вызывается всякий раз, когда требуется словарь переносов. Он проверяет язык и регистрирует соответствующий словарь.

Заключение

И вот оно! Вы только что узнали, как реализовать обратный вызов переноса в Aspose.Words для .NET. Выполнив эти шаги, вы можете гарантировать, что ваши документы будут красиво отформатированы, независимо от языка. Независимо от того, работаете ли вы с английским, немецким или любым другим языком, этот метод позволяет вам без усилий обрабатывать переносы.

Часто задаваемые вопросы

Что такое Aspose.Words для .NET?

Aspose.Words для .NET — это мощная библиотека для работы с документами, которая позволяет разработчикам создавать, изменять и преобразовывать документы программным способом.

Почему расстановка переносов важна при форматировании документа?

Расстановка переносов улучшает компоновку текста, разбивая слова в соответствующих местах, что делает документ более читабельным и визуально привлекательным.

Могу ли я использовать Aspose.Words бесплатно?

Aspose.Words предлагает бесплатную пробную версию. Вы можете получить еездесь.

Как получить словарь переносов?

Вы можете скачать словари переносов из различных интернет-ресурсов или создать свой собственный, если это необходимо.

Что произойдет, если словарь переносов отсутствует?

Если словарь отсутствует,RequestDictionaryметод выдает исключение, которое вы можете обработать, чтобы информировать пользователя или предоставить запасной вариант.