Печатает карту с параметрами, заданными объектом PrintInfo.
Visual Basic:
Function PrintOut(PrintInfo As PrintInfo) As Boolean
PrintInfo - параметры печати: область карты, масштаб, принтер, бумага.
Без флага ePrintNoPrintDlg в свойстве Options объекта PrintInfo метод открывает окно выбора принтера «Печать»; если закрыть его кнопкой «Отмена», метод возвращает False. С этим флагом карта сразу отправляется на принтер, заданный свойством Device, а если оно не задано - на принтер по умолчанию.
Пока идет печать, ZuluGIS показывает окно хода печати с кнопкой «Отмена». Окна самого принтера при этом тоже появляются: например, принтер «Microsoft Print to PDF» спрашивает имя файла. Метод возвращает True, когда карта отправлена на принтер, - и тогда, когда в окне принтера печать отменена.
Печати нужно окно карты: у карты, созданной отдельно от окон ZuluGIS как объект ZuluLib.MapDoc, метод ничего не печатает и возвращает False. Записать изображение карты в файл без принтера позволяет метод PrintToRaster.
Пример печатает всю карту на одной странице: открывает окно выбора принтера и сообщает, отправлена ли карта на печать.
Visual Basic:
Sub MapDoc_PrintOut Const ePrintFitToPage = 2 Const ePrintMapExtents = 16 'Берем рабочую карту Set Doc = Zulu.ActiveMapDoc 'Вся карта на одной странице Set P = CreateObject("ZuluLib.PrintInfo") P.Options = ePrintFitToPage + ePrintMapExtents If Doc.PrintOut(P) Then MsgBox "Карта отправлена на печать" Else MsgBox "Печать отменена или не выполнена" End If End SubPython:
import zulu ePrintFitToPage = 2 ePrintMapExtents = 16 def Macro_MapDoc_PrintOut(): # Берем рабочую карту doc = zulu.App.ActiveMapDoc # Вся карта на одной странице P = zulu.PrintInfo() P.Options = ePrintFitToPage + ePrintMapExtents if doc.PrintOut(P): print("Карта отправлена на печать") else: print("Печать отменена или не выполнена")