Render.ru

VBA изменить ориентацию листа в принтере

#1
Макрос формирует много листов, ориентация альбомная
При при выводе на печать выдает запрос на автоматическое изменение ориентации бумаги в принтере, при положительном ответе сбрасывается заданное количество копий на 1. Да и не красиво это, вдуг кто нажмет случайно или бессознательно не то что нужно.

Перед выводом на печать приходится вызывать
ActiveDocument.PrintSettings.ShowDialog

ВОПРОС: Есть ли возможность программно задать нужный вид ориентации не листа в Кореле, а листа на принтере.

Или только поворотом страницы в Корел можно справиться.

Спасибо всем :)

 
#3
Kerch Написал:
-------------------------------------------------------
> В Х3
> .PaperOrientation = prnPaperLandscape

Если не ошибаюсь (пока не имею Х3)
это и раньше было, но это меняет расположение листа в документе. Т.е. при печати из макроса появиться запрос на изменение ориентации в принтере и как писал ранее заданное количество копий сбросится на 1.

:(
 

Kerch

Активный участник
Рейтинг
5
#4
Автор Lev Fredin

Sub printtt()
With ActiveDocument.PrintSettings
.Copies = 1
.PrintToFile = True
.SelectPrinter "Device Independent PostScript File" '"Linotronic 930 52.3"
.SetCustomPaperSize 300, 400, prnPaperPortrait
.filename = "E:\prn_file\_13.prn"
.ForMac = False
End With
ActiveDocument.PrintOut
End Sub
 
#5
Все замечательно
правда требует доработочки
после .SetCustomPaperSize 300, 400, prnPaperPortrait
или .SetPaperSize prnPaperSizeA4, prnPaperLandscape

Количество .Copies = 5 сбрасывается

Но так заработало

Sub printtt()
With ActiveDocument.PrintSettings
.SetPaperSize prnPaperSizeA4, prnPaperLandscape
.Copies = 5
.ForMac = False
End With
ActiveDocument.PrintOut
End Sub

Т.е. порядок просто поменял

Короче огромное спасибо и низкий поклон Kerch, я уже с этой проблемой давно бьюсь и хоть и ходил рядом но сам не дошел :)
 
Сверху