cppcoder1 Ответов: 1

Печать страниц с помощью WebBrowser control - MFC


Привет,

Я пытаюсь распечатать страницу, используя нижеприведенную функцию:
hr = lpOleCommandTarget->Exec(NULL, OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,NULL, NULL);


Но проблема в том, что он всегда печатает только один экземпляр, даже если я даю больше 1. Я делаю настройку принтера поверх него, используя класс CPrintDLg, как показано ниже:
CPrintDialog dlgl(FALSE);
	INT_PTR userResult = dlgl.DoModal();

Я делаю это потому, что у меня есть некоторые дополнительные функции, основанные на принтере, который я выбрал. Здесь я получаю правильный подсчет, но когда я вызываю lpOleCommandTarget->Exec (""), он печатает только один. Итак, может ли кто-нибудь предложить, как я могу передать количество копий функции Exec ("")?

Что я уже пробовал:

<pre>hr = lpOleCommandTarget->Exec(NULL, OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,NULL, NULL);

1 Ответов

Рейтинг:
1

Jochen Arndt

Согласно с IDM_PRINT идентификатор команды ()[^] нет возможности указать количество страницы копии.

Но вы можете получить количество копий, выбранных пользователем в диалоговом окне печати, и выполнить задание печати несколько раз.


cppcoder1

Спасибо, Йохен. Я имел в виду количество копий, а не страниц.
Если вы позвоните несколько раз, он создаст несколько заданий печати. Поэтому я должен выбрать каждую работу отдельно для печати.Это будет трудно, если я захочу напечатать больше копий ryt?

Jochen Arndt

Я тоже имел в виду копии (упоминание страниц было опечаткой).
К сожалению, никакого решения нет.
Но задания печати стоят в очереди. Таким образом, это не должно быть слишком много накладных расходов, чтобы использовать что-то вроде

for (int i = 0; i < copies; i++)
    lpOleCommandTarget->Exec(...);

cppcoder1

Это будет проблема, когда пользователь установит пароль для печати.Для каждого задания потребуется пароль.Это над головой.

Jochen Arndt

Это, конечно, проблема.
Кажется, что нет никакого удовлетворительного решения.

cppcoder1

Хмммм...так что нет никакого способа, чтобы пройти нет.копий на exec(...)???

Jochen Arndt

Нет. Поддерживаемые параметры описаны в ссылке из моего решения.

Проблема в том, что все это делается с помощью управления веб-браузером. Таким образом, вы ограничены предоставленными Ole-командами.

Любое другое решение потребовало бы отрисовки выходных данных в приложении, что в основном то же самое, что и написание собственного элемента управления браузером.

cppcoder1

Хорошо, спасибо Йохен :)