いくつかのスクリプトでは、Powershellでwkhtmltopdfを使用して、Webページコンテンツのヘッドレス印刷PDFを作成します。これは、ウィジェットやJavaScriptの複雑さに忙しいウェブサイトを除いて、pdfの印刷出力が混乱している場合を除き、うまく機能します。Powershellを使用してprintSelectedDiv javascriptを使用しているWebページのスクリプトを印刷する
このようなウェブページの1つには、ボタンを印刷して、javascript printSelectedDiv
を使用しています。これは、Windowsの印刷ダイアログを開き、複雑なページから目的のdivを正確に印刷します。
Powershellを使用して、印刷ジョブをクリックして送信する作業を自動化できます。しかし、いくつかの他のスクリプトのようなスケジュールされたタスクでこれを実行するために、ヘッドレスな方法でしたい。
私はのSendKeysで、次のように印刷を自動化することができるよ:
$ie = new-object -ComObject "InternetExplorer.Application"
$requestUri = "https://www.complexpagefullofwidgets.com"
$ie.silent = $true
$ie.navigate($requestUri)
while($ie.Busy) { Start-Sleep -Milliseconds 100 }
$doc = $ie.Document
$pdfPrinter = Get-WmiObject -Class Win32_Printer | Where{$_.Name -eq "Microsoft Print to PDF"}
$pdfPrinter.SetDefaultPrinter() | Out-Null
$printButton = $doc.getElementsByTagName("a") | Where-Object {$_.id -eq "btnPrintList"}
$printButton.click()
Start-Sleep -Second 2
$wshell = New-Object -com WScript.Shell
$wshell.sendkeys("{ENTER}")
Start-Sleep -Milliseconds 500
$wshell.sendkeys("%n")
Start-Sleep -Milliseconds 500
$wshell.sendkeys("c:\temp\temp.pdf")
$wshell.sendkeys("{ENTER}")
ではなく、キーストロークを送信するこのプロセスのより良いスクリプトコントロールはありますか?私はキーストロークを送っても、スケジュールされたタスクでヘッドレスで確実に動作するかどうかはわかりません。
これらのページをそのまま印刷しようとするとどうなりますか? – FoxDeploy
申し訳ありませんが、私はあなたが何を求めているのかわかりません。 – STWilson
wkhlmtopdfを使用してページを印刷するとどうなりますか? – FoxDeploy