Удалите гиперссылки из документа Word в C#

В этом примере показано, как удалить гиперссылки из документа Word. Когда вы выбираете текст на веб-странице и вставляете его в документ Word, результат часто содержит гиперссылки, которые вы не хотите. (Фактически после того, как вы вставляете текст, вы можете открыть всплывающее окно коррекции и выбрать «Сохранить текст», чтобы не получить гиперссылки.) В этом примере открывается файл Word, удаляются его гиперссылки и сохраняется файл.

Программа использует библиотеку объектов Microsoft Word, поэтому вам нужно включить ссылку на нее. В обозревателе решений щелкните правой кнопкой мыши ссылку и выберите Добавить ссылку. Перейдите на вкладку COM, выберите запись «Объектная библиотека Microsoft Word 14.0» (или какая версия установлена на вашем компьютере) и нажмите «ОК».

Когда вы вводите имя файла и нажимаете кнопку «Удалить гиперссылки», выполняется следующий код.

// Удаление гиперссылок документа
private void btnRemoveHyperlinks_Click(object sender, EventArgs e)
{
    Cursor = Cursors.WaitCursor;
    Refresh();

    // Получить объект приложения Word.
    Word._Application word_app = new Word.Application();

    // Сделать Word видимым (необязательно).
    word_app.Visible = true;

    // Откройте документ Word.
    object missing = Type.Missing;
    object filename = txtFile.Text;
    object confirm_conversions = false;
    object read_only = false;
    object add_to_recent_files = false;
    object format = 0;
    Word._Document word_doc =
        word_app.Documents.Open(ref filename,
            ref confirm_conversions,
            ref read_only, ref add_to_recent_files,
            ref missing, ref missing, ref missing, ref missing,
            ref missing, ref format, ref missing, ref missing,
            ref missing, ref missing, ref missing, ref missing);

    // Удаление гиперссылок.
    object index = 1;
    while (word_doc.Hyperlinks.Count > 0)
    {
        word_doc.Hyperlinks.get_Item(ref index).Delete();
    }

    // Сохраняем и закрываем документ без запроса.
    object save_changes = true; 
    word_doc.Close(ref save_changes, ref missing, ref missing);

    // Закройте приложение.
    word_app.Quit(ref save_changes, ref missing, ref missing);

    MessageBox.Show("Done");
    Cursor = Cursors.Default;
}

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

Далее код открывает документ Word. Обратите внимание на странный способ передачи параметров методу Documents.Open. Все параметры (включая имя файла) должны передаваться по ссылке как object, поэтому программа создает некоторые переменные object для хранения значений, которые необходимо передать в метод , Специальное значение Type.Missing представляет собой параметр, который следует опустить.

После открытия файла программа вводит цикл while, который продолжается до тех пор, пока документ содержит какие-либо гиперссылки. Внутри цикла программа использует метод Hyperlinks коллекции документа get_Item для получения первой гиперссылки и вызывает метод удаления. Обратите внимание, что метод get_Item запускает индексы гиперссылок с индексом 1 не 0.

Источник: http://csharphelper.com/blog/2014/11/remove-the-hyperlinks-from-a-word-document-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector