Таинственные черные линии в слове при использовании собственного приложения VB.Net - PullRequest
1 голос
/ 05 ноября 2019

Немного предыстории. Я работаю в организации, которая использует Mail Merge и базы данных SQL для заполнения писем именами / адресами. Эти письма отправляются нашим донорам в качестве благодарности. Эти буквы часто меняются, и новые появляются не реже 10 раз в месяц.

Чтобы упростить наш процесс, я создал программу, которая позволяет копировать / вставлять содержимое тела письма в расширенные текстовые поля, а также при необходимостинажмите кнопку «Перейти», она откроет готовый шаблон Word и заменит закладки в шаблоне на скопированное содержимое.

Программа отлично работает с большинством букв, но у некоторых из них есть проблема, когда создаются эти толстые черные линии, и я не могу сделать НИЧЕГО, чтобы удалить их. Я не могу щелкнуть их правой кнопкой мыши, я не могу удалить их с помощью Backspace или Delete, и не могу выделить их.

Я думаю, что проблема может быть в скрытом форматировании. Некоторые из сотрудников, которые пишут письма, используют версию Office 2016 для Mac, а я использую версию для Windows. Я отправил RTF-файл, который показывал черные линии для меня кому-то, кто использует версию для Mac, и они сказали, что не могут видеть линии.

Мой вопрос, есть ли способ избавиться от этихлинии или помешать им в будущем? Я думал об обновлении версии Office до 2019 на обоих концах, но есть довольно много людей, которые держат свои руки в этих письмах, и может быть сложно обновить всех.

Пожалуйста, обратитесь к приложенному изображению длявизуальная справка. Имена и личные данные были удалены. enter image description here

РЕДАКТИРОВАТЬ: Вот код 'Go':

        'create temp rtf files to maintain rtf
    If strForm = "ANG2" Then
        txtPreD.SaveFile("\\server\AcknowledgementLetters\fptemp.rtf")
        txtPostD.SaveFile("\\server\AcknowledgementLetters\bptemp.rtf")
    ElseIf strForm = "ANGL" Then
        txtPreD.SaveFile("\\server\AcknowledgementLetters\predtemp.rtf")
        txtPostD.SaveFile("\\server\AcknowledgementLetters\postdtemp.rtf")
        txtBP.SaveFile("\\server\AcknowledgementLetters\bptemp.rtf")
    Else
        txtPreD.SaveFile("\\server\AcknowledgementLetters\predtemp.rtf")
        txtPostD.SaveFile("\\server\AcknowledgementLetters\postdtemp.rtf")
    End If

    'if bookmarks exists, insert appropriate rtf files
    If odoc.Bookmarks.Exists("fp") = True Then
        goWord.ActiveDocument.Bookmarks("fp").Select()
        goWord.Selection.InsertFile(FileName:="\\server\AcknowledgementLetters\fptemp.rtf")
    End If
    If odoc.Bookmarks.Exists("bp") = True Then
        goWord.ActiveDocument.Bookmarks("bp").Select()
        goWord.Selection.InsertFile(FileName:="\\server\AcknowledgementLetters\bptemp.rtf")
    End If
    If odoc.Bookmarks.Exists("PreD") = True Then
        goWord.ActiveDocument.Bookmarks("PreD").Select()
        goWord.Selection.InsertFile(FileName:="\\server\AcknowledgementLetters\predtemp.rtf")
    End If
    If odoc.Bookmarks.Exists("PostD") = True Then
        goWord.ActiveDocument.Bookmarks("PostD").Select()
        goWord.Selection.InsertFile(FileName:="\\server\AcknowledgementLetters\postdtemp.rtf")
    End If

Прежде чем это произойдет, программа проверяетпосмотрите, какой шаблон нужно открыть, и откройте его как объект Word (odoc). Этот фрагмент кода действительно единственная важная часть. После этого я просто нажимаю кнопку Готово, он просто сохраняет файл после проверки его на наличие ошибок. Кроме того, да, файлы RTF, которые он создает, имеют черные линии. Вот еще одна картина самой программы, чтобы вы могли лучше понять, что происходит.

enter image description here

...