PDF印刷処理不具合
vb.netでAxAcroPDFLib.AxAcroPDFで作成された領域にPDFを表示後、printAll()を使用してPDFを印刷する処理を作成しました。印刷するPDFは複数あり、PDFによって印刷するプリンタが異なります(2種類ある)。印刷する順序はユーザーの選択によって任意に行え、既定のプリンタを切り替えたのちprintAll()で出力します。
AxAcroPDF1.printAll()
仮にPDF-AをプリンタAに、PDF-BをプリンタBに出力するとします。最初にPDF-Aを出力した後、PDF-Bを出力すると両方ともプリンタAに出力されます。逆にPDF-Bを出力した後、PDF-Aを出力すると両方ともプリンタBに出力されます。
プリンタの切り替えは、WshNetworkオブジェクトを作成して以下の方法を使用しております。
Public Sub SetDefaultPrinter(ByVal PrinterName As String)
'WshNetworkオブジェクトを作成する
Dim Tp As Type = Type.GetTypeFromProgID("WScript.Network")
Dim WshNetwork As Object = Activator.CreateInstance(Tp)
Tp.InvokeMember("SetDefaultPrinter", System.Reflection.BindingFlags.InvokeMethod
, Nothing, WshNetwork, New Object() {PrinterName})
End Sub
プリンタの切り替え自体はうまくいっているようです。
printAll()で出力時、2回目以降は最新のプリンタを読みに行かず1回目に使用したプリンタをずっと引き継いでいる気がします。
解消するにはどうしたらよいでしょうか?
