みなさま、宜しくお願い致します。
###前提・実現したいこと
表題の通り、フォルダー配下のPDF/XPSファイルを一括で、
指定した順番で印刷したいです。
併せて、できれば印刷中の画面(ビューワ自体や印刷設定画面等)は
非表示か、最小化したい。
※少なくともフォアグランド/視認できる様に出てほしくない。
追記:
順番指定は、絶対パスかファイル名を想定しています。
「Get-ChildItem -Recurse | Sort Name」のようなイメージです。
###発生している問題・エラーメッセージ
印刷自体は、問題ありません。
ただ、順番がばらばらになります。
(1ファイル内の順番ではなく、ファイル単位での順番)
たとえば、次のファイル群を印刷したとします。
1.PDF
2.PDF
3.PDF
プリントキューに格納された時点で、、、
3.PDF
1.PDF
2.PDF
プリントアウトされたときは、、、、
3.PDF
1.PDF
2.PDF
恐らく、キューイング時間やファイルサイズ等が
影響していると想像しています。
###ソースコード
powershell
1$FILE_DIR_PATH = $args[0] 2$MOVE_DIR_PATH = $FILE_DIR_PATH + “\printed\” 3Set-Location $FILE_DIR_PATH 4$List = Get-ChildItem $FILE_DIR_PATH | Where-Object {$_.Extension -eq “.pdf”} 5if ($List -eq $null) { exit 0 } 6foreach($pdf in $List) 7{ 8 $PrintPdf = Move-Item $(Get-ItemProperty $pdf).FullName $MOVE_DIR_PATH -PassThru 9 Start-Process -FilePath $(Get-ItemProperty $PrintPdf).FullName -verb print 10} 11exit 0
Start-Processで-waitを使ってみましたが、こちらの環境では、
キューイング後、即印刷されない為、使えませんでした。
(プリンター本体に特定操作を行うことで、初めて印刷される)
また、たとえばPDFファイルだと、Acrobat Raderのコマンドライン
オプションを使って、CLI処理を行う方法を試しましたが、
関係なかったです。
追記2:
Start-Processで-waitを使ってみた結果、例に挙げた3つのPDFの
パターンで説明しますと、最初(1番目)がキューイング処理中?
処理後?に止まってしまい、2番目に処理が移りませんでした。
よって、プリンター本体の操作に関係なく、処理が止まる為
使えませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Name Value
PSVersion 5.0.10586.0
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.0
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Google検索すると、”よくある質問”の様ですね。。。


