Программный вызов Мастера печати фотографий (15.06.2013). Печать
2013 - Июнь
15.06.2013 17:48
Save & Share

В одной программе мне потребовалось выводить на печать сгенерированные рисунки. В итоге для этого был написан ряд функций: выбор принтера по умолчанию, изменение принтера по умолчанию, создание листа A4 и размещение на нем нужного рисунка, учет полей и прочих технических особенностей выбранного принтера. И вот сегодня я научился вызывать стандартный Мастер Печати Фотографий (МПФ), поэтому встал вопрос: ну зачем я всё это писал?! Нет, пригодится потом... но в других вопросах.

Прежде всего, о глюках и недостатке информации. Изначально думал, что нужно рыть в shimgvw.dll, потом - в photowiz.dll, потом - в wiascr.dll. Сдался на длительное время: все не то.

Позже пришел к правильному выводу: WiaAut.dll. Но вот проблема, возни с этой библиотекой было выше крыши: попытка зарегистрировать ее при помощи RegSvr32 приводило к ошибке "Не найдена указанная процедура". Оказалось, в интернете большинство файлов данной библиотеки просто-напросто битые. Выложить сами библиотеки не могу, но вот информация по ним: Windows XP - 323624 байта, версия 5.1.2600.1106; Windows 7 - 544256 байт, версия 6.1.7600.16385.

Вот пример кода работы с библиотекой на языке VB6:

1 Shell "regsvr32 /s " & Chr(34) & "C:\WIAAut.dll" & Chr(34)

2 Dim Master As Object
3 Dim Image_Collection As Object

4 Set Master = CreateObject("WIA.CommonDialog")
5 Set Image_Collection = CreateObject("WIA.Vector")

6 Image_Collection.Add ("C:\1.bmp")
7 Call Master.ShowPhotoPrintingWizard(Image_Collection)

Обновлено ( 12.11.2013 19:53 )