Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MSWord. Ole. Импорт из Колонтитула.

77K
11 января 2012 года
Dmitry_flip
7 / / 11.01.2012
Написал программу по обработке текста из MSWord.
Импорт текста осуществляю простым кодом:

 
Код:
vVarApp=CreateOleObject("Word.Application");
vVarDocs=vVarApp.OlePropertyGet("Documents");
vVarDocs.OleProcedure("Open","File.doc");
V=vVarApp.OlePropertyGet("Selection");
V.OleFunction("WholeStory");
V.OleFunction("Copy");
Memo1->PasteFromClipboard();
vVarApp.OleProcedure("Quit");


В процессе эксплуатации возникла проблема: Некоторые открываемые в программе файлы содержат текст в колонтитулах. Текст из колонтитулов данный код не берет. Помогите разобраться, как считать текст из колонтитула.
14
12 января 2012 года
Phodopus
3.3K / / 19.06.2008
Наверное только обрабатывая страницу за страницей. Или попробовать сохранять в текстовый файл
77K
12 января 2012 года
Dmitry_flip
7 / / 11.01.2012
Вообще не получается считать с колонтитула, пусть даже страница всего одна.
Selection - WholeStory считывает с активной страницы, в которую колонтитул не входит.
То есть каким-то образом необходимо колонтитул сделать активным.
277
12 января 2012 года
arrjj
1.7K / / 26.01.2011
У селекшина вроде есть свойства header и footer.
А постранично myWinWordApp.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader вроде переходит на верхний колонтитул
А на нижний myWinWordApp.ActiveWindow.ActivePane.View.SeekView = 10 (хз как константа называется скорее всего wdSeekCurrentPageFooter)
77K
12 января 2012 года
Dmitry_flip
7 / / 11.01.2012
Это в Visual Basic. А как активным сделать колонтитул в OLE.?
Вот для самой страницы:
 
Код:
vVarDoc=vVarDocs.OleFunction("Item",1);
 vVarDoc.OleProcedure("Activate");


В библиотеке MSWORD.OLB, вообще слабо понятно что есть колотнитул, быть может HeaderFooter, но у этого нет метода Activate.
14
12 января 2012 года
Phodopus
3.3K / / 19.06.2008
Visual Basic и OLE стоят рядом тут.
Да, HeaderFooter
зачем вам метод Activate?
77K
13 января 2012 года
Dmitry_flip
7 / / 11.01.2012
Цитата: Phodopus
Visual Basic и OLE стоят рядом тут.
Да, HeaderFooter
зачем вам метод Activate?



В word посмотрел в макросе как происходит выделение текста основного документа и колонтитула.

 
Код:
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.WholeStory
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
    Selection.WholeStory


Потому решил, что мне нужен метод Activate. Если не нужен - это может и хорошо, но это не проясняет для меня
как решить задачу.
14
13 января 2012 года
Phodopus
3.3K / / 19.06.2008
У меня не получалось выделить документ с колонтитулами. Скажете как вы это делали - гляну.
И да, я не вижу метода Activate тут опять же.
77K
14 января 2012 года
Dmitry_flip
7 / / 11.01.2012
Цитата: Phodopus
У меня не получалось выделить документ с колонтитулами. Скажете как вы это делали - гляну.
И да, я не вижу метода Activate тут опять же.



Берем документ, начинаем запись макроса: открываем колонтитул, нажимаем Ctrl+A, закрываем колонтитул, переходим в основной текст, нажимаем Ctrl+A. Останавливаем запись.

14
15 января 2012 года
Phodopus
3.3K / / 19.06.2008
Это не выделение документа с колонтитулами, а по отдельности. Т.е. по сути то, о чем я писал в первом своем посте
77K
15 января 2012 года
Dmitry_flip
7 / / 11.01.2012
Цитата: Phodopus
Это не выделение документа с колонтитулами, а по отдельности. Т.е. по сути то, о чем я писал в первом своем посте


Хорошо, пусть так, но так какие пару строк написать, чтобы решить поставленную задачу?

14
15 января 2012 года
Phodopus
3.3K / / 19.06.2008
Думаю проще всего будет вариант 2 попробовать.
77K
16 января 2012 года
Dmitry_flip
7 / / 11.01.2012
А как его реализовать-то?)) не получается перевести Basic в С++
14
16 января 2012 года
Phodopus
3.3K / / 19.06.2008
Также, как реализовывали в первый раз. Посмотрите что происходит при сохранении в текстовый файл и запустите то же самое через OleFunction.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог