Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
7 / 7 / 5
Регистрация: 28.07.2014
Сообщений: 104
1

Работа с колонтитулами в Word

22.03.2018, 15:17. Показов 4177. Ответов 1
Метки нет (Все метки)

Добрый день! Подскажите пожалуйста как изменить шрифт и размер для номеров страницы в документе Word из под Delphi.
Номера страниц расставляются следующим образом:
Delphi
1
Sel.Sections.Item(1).Footers.Item(1).PageNumbers.Add(wdAlignPageNumberRight, True);
Далее идет содержимое колонтитула:
Delphi
1
2
3
4
5
Sel.Sections.Item(1).Footers.Item(1).Range.Font.Name:='Arial';
Sel.Sections.Item(1).Footers.Item(1).Range.Font.Size:=8;
Sel.Sections.Item(1).Footers.Item(1).Range.Text:=Format('%s%s%s%s%s',
['Название программы, 2018',', вер. ','0.0.0.1','           ',
FormatDateTime('dd.mm.yy h:m:s', now())]);
Нашел вот такой скрипт VBA:
Visual Basic
1
2
3
4
5
6
7
8
9
Set myPgNum = ActiveDocument.Sections(1) _ 
 .Headers(wdHeaderFooterPrimary) _ 
 .PageNumbers.Add(PageNumberAlignment:= _ 
 wdAlignPageNumberCenter, FirstPage:= True) 
myPgNum.Select 
With Selection.Range 
 .Italic = True 
 .Bold = True 
End With
Не получается перевести его в Delphi. Делаю следующим образом:
Delphi
1
2
3
4
PageNumbers:=App.ActiveDocument.Sections.Item(1).Footers.Item(1).PageNumbers.Add(wdAlignPageNumberRight, True);
PageNumbers.Select;
Sel.Font.Name:='Arial';
Sel.Font.Size:=8;
Выдает ошибку: метод или свойство SelectCell недоступны, потому что некоторые или все объекты не ссылаются на таблицу.
*
Delphi
1
2
app:=CreateOleObject('Word.Application');
sel:=app.selection;
Вопрос номер 2: как нарисовать сверху колонтитула линию (отчерк)?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2018, 15:17
Ответы с готовыми решениями:

Работа с колонтитулами в документе MS Word
Доброго времени суток! Возможно, эта тема поднималась, и не раз, но я либо туплю, либо плохо гуглю...

Поиск word документов с колонтитулами
help! Нужно организовать поиск word документам , которые содержат колонтитулы. Т.е. прошерстить...

Работа с колонтитулами Excel
Всем привет. Создаю программу. Необходимо, чтобы она вписывала в колонтитул файлов excel...

Ворд: работа с колонтитулами
Как программно можно получить номер раздела документа по текущему положению курсора? С уважением

1
7 / 7 / 5
Регистрация: 28.07.2014
Сообщений: 104
26.03.2018, 13:45  [ТС] 2
Ну как-то так. Тему можно закрывать.
Delphi
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
procedure drawFooters();
    var
      i:integer;
    begin
      //убираем "как в предыдущем" для всех разделов
 
      //включили режим веб-документа
      App.ActiveWindow.View:=6;
      //перешли в нижний колонтитул и для всех "их 7" разделов отменили
      App.ActiveWindow.ActivePane.View.SeekView:=10;
      App.ActiveDocument.Sections.Item(1).Footers.Item(1).LinkToPrevious:=False;
      App.ActiveDocument.Sections.Item(2).Footers.Item(1).LinkToPrevious:=False;
      App.ActiveDocument.Sections.Item(3).Footers.Item(1).LinkToPrevious:=False;
      App.ActiveDocument.Sections.Item(4).Footers.Item(1).LinkToPrevious:=False;
      App.ActiveDocument.Sections.Item(5).Footers.Item(1).LinkToPrevious:=False;
      App.ActiveDocument.Sections.Item(6).Footers.Item(1).LinkToPrevious:=False;
      App.ActiveDocument.Sections.Item(7).Footers.Item(1).LinkToPrevious:=False;
      for i:=1 to 7 do
      begin
        //проходимся по разделам
        Sel.GoTo(0,emptyParam,emptyParam,i);
        if i=5 then
        begin
          Sel.Sections.Item(1).Footers.Item(1).Range.Text:=Format(#13'%s%s%s%s%s',
          ['Название программы, 2018',', вер. ','0.0.0.1','           ',
          FormatDateTime('dd.mm.yy h:m:s', now())]);
          if i=1 then
            App.ActiveDocument.Sections.Item(i).Footers.Item(1).PageNumbers.Add(wdAlignPageNumberRight, False)
          else
            App.ActiveDocument.Sections.Item(i).Footers.Item(1).PageNumbers.Add(wdAlignPageNumberRight, True);
          //устанавливаем размер и тип шрифта
          Sel.Sections.Item(1).Footers.Item(1).Range.Font.Name:='Arial';
          Sel.Sections.Item(1).Footers.Item(1).Range.Font.Size:=8;
          //включили режим веб-документа
          App.ActiveWindow.View:=6;
          //перешли в нижний колонтитул
          App.ActiveWindow.ActivePane.View.SeekView:=10;
          Sel.Sections.Item(1).Footers.Item(1).Shapes.AddConnector(1, 51, 545, 738, 0).Select;
        end
        else
        begin
          Sel.Sections.Item(1).Footers.Item(1).Range.Text:=Format('%s%s%s%s%s',
          ['Название программы, 2018',', вер. ','0.0.0.1','           ',
          FormatDateTime('dd.mm.yy h:m:s', now())]);
          if i=1 then
            App.ActiveDocument.Sections.Item(i).Footers.Item(1).PageNumbers.Add(wdAlignPageNumberRight, False)
          else
            App.ActiveDocument.Sections.Item(i).Footers.Item(1).PageNumbers.Add(wdAlignPageNumberRight, True);
          //устанавливаем размер и тип шрифта
          Sel.Sections.Item(1).Footers.Item(1).Range.Font.Name:='Arial';
          Sel.Sections.Item(1).Footers.Item(1).Range.Font.Size:=8;
          if i=1 then
            Sel.GoTo(1,emptyParam,emptyParam,2)
          else;
            //включили режим веб-документа
            App.ActiveWindow.View:=6;
            //перешли в нижний колонтитул
            App.ActiveWindow.ActivePane.View.SeekView:=10;
            Sel.Sections.Item(1).Footers.Item(1).Shapes.AddConnector(1, 71, 791, 482, 0).Select;
        end;
      end;
      //переключаем панель в исходное состояние
      App.ActiveWindow.ActivePane.View.SeekView:=0;
      //возвращаемя к режиму разметки страницы
      App.ActiveWindow.View:=3;
    end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2018, 13:45

Работа с колонтитулами на VBA
Доброго времени суток! Подскажите, пожалуйста, как решить следующую задачку: Задача:...

Работа с колонтитулами docx через Open XML
Добрый день, уважаемые форумчане ! Появилась необходимость найти и заменить некоторые слова в...

Работа с колонтитулами: анализ групп объектов, подсчет количества фигур
Добрый день. На странице word имеется группа объектов (линии, текстовые блоки). Как обратиться к...

Работа метода Word.Selection.Find при поиске в документе Word
Дорого времени суток! никак не могу разобраться в механизме работы range.find Запускаю: ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.