Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: По поводу полей документа Добавлено: 25.12.06 22:19  

Автор вопроса:  Ян
Народ подскажите?
Создаю новый документ. Все поля ставлю 0. А можно ли сделать так чтобы, поля ставились автоматически (по минимуму, такие какие получаются нажав на кнопку "Исправить" в сообщении "Одно или несколько полей лежат вне области печати..."). Или хотя-бы чтоб Word не выдавал запрос при печати, что мол "Поля раздела 1 выходят за границы области печати..."

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 27.12.06 23:16
создай шаблон (dot файл) в котором всё сделаешь по вкусу...

Ответить

Номер ответа: 2
Автор ответа:
 Ян



Вопросов: 2
Ответов: 3
 Профиль | | #2 Добавлено: 27.12.06 23:32
Хитро...
Но не то
Я и собираюсь распространять dot файл, но проблема в том, что на разных компах разные принтера и разные минимальные границы

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 27.12.06 23:55
так макрос запиши и посмотри...

Selection.PageSetup.LeftMargin = CentimetersToPoints(4.22)


ну и вообще, изучай дальше PageSetup...

Ответить

Номер ответа: 4
Автор ответа:
 Ян



Вопросов: 2
Ответов: 3
 Профиль | | #4 Добавлено: 29.12.06 01:38
Нет, Вы не понимаете, либо я не точно объяснил....
Я именно так и делаю

Selection.PageSetup.LeftMargin = CentimetersToPoints(4.22)

Задача у меня стоит сделать поля в ноль или по минимуму, что позволяет печатать принтер, но на разных машинах разные принтера и соответсвенно разные минимальные поля. Если в самом Ворде все поля выставить в ноль, то он ругается "Одно или несколько полей лежат вне области печати..." и предлагает исправить, нажав на кнопку "Исправить"
поля выставляются по минимуму для конкретного принтера. Вот это и надо реализовать из проги. Либо на крайняк оставить поля в ноль (пропадание текста по краям листа исключаются), но при этом сделать так чтобы при нажатии на кнопку "Печать" Ворд не ругался "Поля раздела 1 выходят за границы области печати". Я думаю второй вариант даже предпочтительней.

Ответить

Номер ответа: 5
Автор ответа:
 TolikT



Вопросов: 1
Ответов: 5
 Профиль | | #5 Добавлено: 30.12.06 19:17
Коряво, но работает.
Идея – макросом запустить окно настроек параметров страницы, выставить все поля в 0, согласиться с предложением «Исправить».
Для Word 97.


В модуле документа:
Private Sub Document_Open()
SendKeys "%фм%п%в0%н0%е0%а0~%и~{ESC}", True
End Sub

или
Private Sub Document_Open()
With ActiveDocument.PageSetup
    .TopMargin = 0
    .BottomMargin = 0
    .LeftMargin = 0
    .RightMargin = 0
End With
SendKeys "%фм~%и~{ESC}", True
End Sub

Замечания.

1. Только для русского Word. Но строку для SendKeys можно задать для любой локализации Word. В т. ч. для любой версии.

2. Только в русской раскладке клавиатуры. Макрос проверки и изменения раскладки можно, думаю, как-то тоже соорудить. Если не по-простому, то посредством WinAPI. Это надо спрашивать у спецов.

3. Только при запуске макроса при активном документе. Иначе строка
SendKeys "%фм~%и~{ESC}"
вставит лишние символы куда-нибудь не туда.

4.
Application.ScreenUpdating = False
не работает (окно настройки параметров страницы всё равно появляется)

5. Даже при выставленных минимальных значениях полей (после действия "Исправить";) на некоторых принтерах всё равно появляется окно "Поля раздела 1 выходят за границы области печати". Например, для Hewlett Packard Laser Jet 1200 после исправления значения полей выставляются следующие: В-0.42, Н-0.43, Л-0.42, П-0.78 и при печати "Поля раздела 1 выходят за границы области печати". Только после исправления вручную на В-0.43 и Л-0.43 печатается молча.
То есть в коде после
SendKeys "%фм~%и~{ESC}"
, True на всякий случай можно добавить
ActiveDocument.PageSetup.TopMargin= ActiveDocument.PageSetup.TopMargin+2.835
. Это для верхнего поля. Можно и для всех остальных добавить по 2.835 пункта, либо только к минимальным

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам