WebBrowser.Print () дождаться завершения. .СЕТЬ - PullRequest
5 голосов
/ 18 марта 2010

Я использую элемент управления WebBrowser в VB.NET и вызываю метод Print (). Я печатаю на принтере PDF, и когда вызывается Print (), он не запускается немедленно (он ждет, пока не завершится выполнение кода для всего Sub или блока.

Мне нужно убедиться, что файл, который я печатаю, тоже завершен, и продолжить обработку с этим файлом, поэтому я хотел бы распечатать его по требованию и получить некоторый статус после завершения операции. Я попытался использовать printDocument и обработать без удачи.

У кого-нибудь есть идеи?

Ответы [ 2 ]

5 голосов
/ 18 марта 2010

Проверьте событие PrintTemplateTeardown базового неуправляемого объекта WebBrowser. Иногда это событие запускается несколько раз, но, надеюсь, это укажет вам правильное направление. Вам необходимо добавить ссылку на Microsoft Internet Controls.

Private Sub Print()
    AddHandler DirectCast(WebBrowser1.ActiveXInstance, SHDocVw.WebBrowser).PrintTemplateTeardown, AddressOf PrintDone
    WebBrowser1.Print()
End Sub
Private Sub PrintDone(ByVal obj As Object)
    Trace.WriteLine("printed")
    RemoveHandler DirectCast(WebBrowser1.ActiveXInstance, SHDocVw.WebBrowser).PrintTemplateTeardown, AddressOf PrintDone
End Sub
1 голос
/ 24 апреля 2011

Лучше всего получить справку о наборе «printjobscollection» для вашего принтера по умолчанию и убедиться, что значение задания равно 0

как это в vb.net:

    Dim intprint As Integer = Nothing

    retry2:
    intprint = GetPrintJobsCollection(printerinuse)
    If Not intprint = 0 Then
        System.Threading.Thread.Sleep(1000)
        GoTo retry2
    End If
    'do what you want to do after print completes here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...