Страница: 1 |
|
Вопрос: По поводу полей документа
|
Добавлено: 25.12.06 22:19
|
|
Автор вопроса: Ян
|
Народ подскажите?
Создаю новый документ. Все поля ставлю 0. А можно ли сделать так чтобы, поля ставились автоматически (по минимуму, такие какие получаются нажав на кнопку "Исправить" в сообщении "Одно или несколько полей лежат вне области печати..."). Или хотя-бы чтоб Word не выдавал запрос при печати, что мол "Поля раздела 1 выходят за границы области печати..."
Ответить
|
Номер ответа: 4 Автор ответа:
Ян
![](images/starGray.gif) ![](images/starGray.gif) ![](images/starGray.gif)
Вопросов: 2 Ответов: 3
|
Профиль | | #4
|
Добавлено: 29.12.06 01:38
|
Нет, Вы не понимаете, либо я не точно объяснил....
Я именно так и делаю
Selection.PageSetup.LeftMargin = CentimetersToPoints(4.22)
Задача у меня стоит сделать поля в ноль или по минимуму, что позволяет печатать принтер, но на разных машинах разные принтера и соответсвенно разные минимальные поля. Если в самом Ворде все поля выставить в ноль, то он ругается "Одно или несколько полей лежат вне области печати..." и предлагает исправить, нажав на кнопку "Исправить"
поля выставляются по минимуму для конкретного принтера. Вот это и надо реализовать из проги. Либо на крайняк оставить поля в ноль (пропадание текста по краям листа исключаются), но при этом сделать так чтобы при нажатии на кнопку "Печать" Ворд не ругался "Поля раздела 1 выходят за границы области печати". Я думаю второй вариант даже предпочтительней.
Ответить
|
Номер ответа: 5 Автор ответа:
TolikT
![](images/starGray.gif) ![](images/starGray.gif) ![](images/starGray.gif) ![](images/starGray.gif) ![](images/starGray.gif)
Вопросов: 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 |
Поиск по форуму