Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
2 / 2 / 0
Регистрация: 06.03.2011
Сообщений: 9
1

Удаление колонтитулов в Word 2003 (файл rtf)

05.11.2013, 23:29. Показов 3618. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. У меня есть фалы rtf, которые я открываю в Word 2003, чтобы отформатировать (по мне это проще, чем форматировать через RichTextBox). В файле есть верхний и нижний колонтитулы, пытаюсь удалить их так:
C#
1
2
wordapp.ActiveDocument.Sections[1].Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Delete();
wordapp.ActiveDocument.Sections[1].Footers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Delete();
но программа удаляет только их содержимое, а сами колонтитулы остаются, пока в них не зайдешь вручную и не нажмешь "Закрыть". Как удалить их сразу полностью? Заранее благодарен!
Пример файла: http://ultrashare.net/hosting/fl/5a853e847a
Полный текст программы (если надо, но пока недописана ):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word = Microsoft.Office.Interop.Word;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
 
namespace forWord
{
    class Program
    {
        static void Main(string[] args)
        {
            Word.Application wordapp;
            wordapp = new Word.Application();
            wordapp.Visible = true;
            Word.Document worddocument;
            Object template = Type.Missing;
            Object newTemplate = false;
            Object documentType = Word.WdNewDocumentType.wdNewBlankDocument;
            Object visible = true;
 
            Object confirmConversions = true;
            worddocument = wordapp.Documents.Open(@"C:\Users\Noks\Desktop\1.doc", ref confirmConversions);
 
            Object fileName = @"C:\Users\Noks\Desktop\1.doc";
            Object fileFormat = Word.WdSaveFormat.wdFormatDocument;
            Object lockComments = false;
            Object password = "";
            Object addToRecentFiles = false;
            Object writePassword = "";
            Object readOnlyRecommended = false;
            Object embedTrueTypeFonts = false;
            Object saveNativePictureFormat = false;
            Object saveFormsData = false;
            Object saveAsAOCELetter = Type.Missing;
            Object encoding = Type.Missing;
            Object insertLineBreaks = Type.Missing;
            Object allowSubstitutions = Type.Missing;
            Object lineEnding = Type.Missing;
            Object addBiDiMarks = Type.Missing;
 
            //object patternstyle = Word.WdStyleType.wdStyleTypeParagraph;
            //Word.Style wordstyle = worddocument.Styles.Add("myStyle", ref patternstyle);
 
 
            object begin = Type.Missing;
            Object end = Type.Missing;
            Word.Range wordrange = worddocument.Range(ref begin, ref end);
            wordrange.Find.Text.Replace("Сопроводительная ", "QWERWERRWTWER");
            //object oWordStyle = wordstyle;
            wordrange.PageSetup.TopMargin = 19.8f;
            wordrange.PageSetup.BottomMargin = 19.8f;
            wordrange.PageSetup.LeftMargin = 51f;
            wordrange.PageSetup.RightMargin = 28.3f;
            //wordrange.set_Style(ref oWordStyle);
            Word.Table wordtable = worddocument.Tables[1];
            wordapp.ActiveDocument.Sections[1].Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Delete();
            wordapp.ActiveDocument.Sections[1].Footers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Delete();
 
            //wordtable.Cell(1, 1).Delete();
            fileName = @"C:\Users\Noks\Desktop\1.rtf";
 
            worddocument.SaveAs(ref fileName, ref fileFormat, ref lockComments,
            ref password, ref addToRecentFiles, ref writePassword,
            ref readOnlyRecommended, ref embedTrueTypeFonts,
            ref saveNativePictureFormat, ref saveFormsData,
            ref saveAsAOCELetter, ref encoding, ref insertLineBreaks,
            ref allowSubstitutions, ref lineEnding, ref addBiDiMarks);
 
            Object saveChanges = Word.WdSaveOptions.wdPromptToSaveChanges;
            Object originalFormat = Word.WdOriginalFormat.wdWordDocument;
            Object routeDocument = Type.Missing;
            ((Word._Application)wordapp).Quit(ref saveChanges,
                            ref originalFormat, ref routeDocument);
            wordapp = null;
 
            //wordapp.Documents.Close();                          //для Word 2010
            //RemoveHeadersFooters((string)fileName);
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2013, 23:29
Ответы с готовыми решениями:

Автоматическое удаление нижних колонтитулов в нескольких RTF-файлах
Добрый день! Помогите пожалуйста с bat-файлом. Необходимо удалить нижние колонтикулы в...

Удаление колонтитулов в Word 2007
Доброго времени суток. Вопрос: как удалить нижний колонтитул на отдельной странице в середине...

откроет ли microsoft office 2003, файл форматом rtf?
откроет ли microsoft office 2003, файл форматом rtf?

Удаление содержимого части ячейки таблицы в Word 2003
Уважаемые знатоки, очень требуется помощь. Имеем документ MS Word 2003 (*.rtf, *.doc), в документе...

3
2 / 2 / 0
Регистрация: 06.03.2011
Сообщений: 9
07.11.2013, 21:03  [ТС] 2
UP
Неужели такой сложный вопрос?
0
2 / 2 / 0
Регистрация: 06.03.2011
Сообщений: 9
12.11.2013, 20:16  [ТС] 3
Всё оказалось просто:
C#
1
2
worddocument.PageSetup.HeaderDistance = 0;
worddocument.PageSetup.FooterDistance = 0;
2
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.11.2013, 22:07 4
Интересное решение. Дело в том, что проблема неисчезающих пустых колонтитулов существует столько лет, сколько Word 2003. В более поздних версиях эту проблему решили, а вот в 2003-м она так и осталась. Что ж скрыть колонтитулы это тоже вариант. Браво
0
12.11.2013, 22:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2013, 22:07
Помогаю со студенческими работами здесь

Как программно пересохранить word-овский документ в файл с расширением «.rtf»
Dim word = New Word.Application word.Documents.Open("\...\Doc1.doc") ...

Обработка колонтитулов в Word 2013
Добрый день! Написал макрос для Word 2013, который должен обрабатывать колонтитулы у произвольного...

Использование колонтитулов в Word-2010
Как сделать в Word-2010 так, чтобы не просто защитить колонтитулы от изменений, а в поле...

Макрос для формирования колонтитулов в Word
Когда в документе нет специального колонтитула первой страницы, то макрос выполняется нормально, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru