Как избавиться от колонтитулов при сохранении в формат TXT?

Автор Посетитель_20112025, 21 ноября 2025, 13:19

Посетитель_20112025

Когда я Вордовский файл сохраняю в формат TXT, то в конце файла добавляется содержимое верхних колонтитулов (для нечётной и чётной страницы). Как сделать так, чтобы колонтитулы не экспортировались в TXT-файл?

Администратор

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

Посетитель_20112025

Я пытался найти способ полностью удалить колонтитулы средствами VBA, но так и не нашёл. Ведь мало затереть их содержимое: в этом случае они всё равно будут экспортироваться, только в виде пустой строки. Нужно их каким-то образом «грохнуть».

Администратор

Цитата:
Ведь мало затереть их содержимое:

Что вы подразумеваете под "затереть"? Какие действия вы делаете (какие кнопки щёлкаете), чтобы затереть?

Посетитель_20112025

Я имел в виду – удалить тот текст, который набит в колонтитуле. Но сам по себе колонтитул ведь никуда не девается...
Я просто не могу сообразить, как правильно разрулить эту проблему, куда мне копать.

Посетитель_20112025

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

Администратор

Если удалить текст в колонтитуле, то, соответственно, в txt-файл не запишется колонтитул - ведь писать то нечего.

Посетитель_20112025


Посетитель_20112025

А всё-таки с ними что-то не то.
Удаляю колонтитулы таким образом:

Спойлер
Dim HeaderFooter As HeaderFooter
With ActiveDocument
    .PageSetup.DifferentFirstPageHeaderFooter = True
    .PageSetup.OddAndEvenPagesHeaderFooter = True

    For Each HeaderFooter In .Sections(1).Headers
        If HeaderFooter.Exists Then HeaderFooter.Range.Delete
    Next
End With
[свернуть]

Правильно?

Так вот: результат следующий: после сохранения Вордовского файла в TXT в конце TXT появляются пустые строки, 13 штук. Тот же самый результат, если я без всякого удаления колонтитулов просто попытаюсь сохранить Вордовский файл в TXT, только тогда вместо соответствующих пустых строк будет помещено содержимое колонтитулов. Причём это легко отследить, если добавить куда-нибудь в текст символы не из кириллической кодовой страницы: тогда Ворд откроет окно с параметрами преобразования кодировок, и в конце окна как раз видны эти «новорождённые» пустые строки. Точнее, не совсем пустые: часть пустых, а часть имеет в начале строки 4 пробела (это в моём случае, у других, возможно, не совсем так). Похоже на то, что эти строки имеют отношение к колонтитулам.

Администратор

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

Посетитель_20112025

Там была интересная ситуация: первый раз удалил вручную, сохранил – никаких пустых строк не добавилось. Я уже обрадовался, что нашёл, где собака зарыта. Но при последующих экспериментах пустые строки стабильно появлялись.

Кстати, колонтитулы при их удалении макросом физически не удаляются, они только очищаются. Это легко проверить, повторно напустив этот макрос на тот же текст.

Администратор

То есть проблема есть и при ручном удалении? Вы заходите в колонтитул, всё выделяете, удаляете и затем пересохраняете в txt-файл и пустые пространства на месте колонтитулов?

Посетитель_20112025

Да, именно так. Но при этом неизвестно, откуда этот хвост берётся: возможно, что это какие-то внутренние «осколки» из самого Ворда, а не из документа.

Администратор

Значит макрос не виноват.
Значит проблема в самом Ворде.

После того, как вы удалили колонтитулы, визуально в документе всё нормально, сверху ничего лишнего нет?

Администратор

Сейчас создал пустой ворд-файл, пересохранил его, в конце есть пустые абзацы.
Значит программисты Майкрософта так сделали. Просто нужно принять это.