Поэтому я пытаюсь распечатать указанную веб-страницу на указанном принтере в Windows. (Разрабатывая 7, я, вероятно, в конечном итоге разверну это на Windows Server 2008). Мне сказали, что способ сделать это - автоматизировать Internet Explorer и вызвать execWB(6,2) . поэтому я получил этот скрипт:

$targetPrinter = "Snagit 13"
$targetWebPage = "http://google.com"

try
{
    $defaultPrinter = (Get-WmiObject -Query " SELECT name FROM Win32_Printer WHERE Default=$true").Name
    $ie = new-object -comObject InternetExplorer.Application
    $ie.navigate($targetWebPage)
    (Get-WmiObject -ComputerName . -Class Win32_Printer -Filter "Name='$targetPrinter'").SetDefaultPrinter()
    while ( $ie.busy ) { Start-Sleep -second 5 }
    $ie.execWB(6,2)
    while ( $ie.busy ) { Start-Sleep -second 5 }
    $ie.quit()
    Write-Host "done"
}
catch
{

}
finally
{
    (Get-WmiObject -ComputerName . -Class Win32_Printer -Filter "Name='$defaultPrinter'").SetDefaultPrinter()
    [gc]::collect()
    [gc]::WaitForPendingFinalizers()
}

(очевидно, Google только для примера, на самом деле он указывает на веб-страницу интрасети. Если это имеет значение.) (Snagit 13 - это не бесплатное программное обеспечение, которое должно обрабатывать снимки экрана, но важно, что здесь он предоставляет принтер, который создает изображение при печати на нем. Просто чтобы сэкономить бумагу.)

Если я копирую и вставляю эту строку построчно в подсказку powershell, она работает так, как вы ожидаете. Но если я пытаюсь запустить сценарий или даже скопировать и вставить весь сценарий в интерактивную подсказку, IE игнорирует меня. Я вижу вывод от установки принтера по умолчанию, он не выдает никаких ошибок, но печать никогда не происходит. Разве я не могу автоматизировать IE из неинтерактивного приглашения? Если так, как я могу надеяться напечатать веб-страницу?

Я также попробовал другой метод для печати веб-страницы:

$web = New-Object Net.WebClient
$web.DownloadString("http://google.com") > "tomorrow.html"
rundll32.exe mshtml.dll,PrintHTML "tomorrow.html"

Tom.html создан и выглядит правильно, но печать не происходит (снова).

0