StartPagePrinterで、印刷するページの開始を通知する。
StartPagePrinter function (Winspool.h) - Win32 apps | Microsoft Docs
test_text.txtを、
2ページ分の量に増やした。
しかし、複数ページある場合、ページごとに複数回呼び出すのかと思いきや、試行錯誤した結果、複数ページ印刷でもWritePrinterの前に1回呼び出すだけで印刷できてしまった。
StartPagePrinterの後に、MessageBoxを挟んで、キューの状態を見ることにした。
メッセージボックスを表示して止める。
スプール中。
そこを抜けると、印刷中になる。
C:\Users\bg1\Documents\test>StartPagePrinter.exe tszModulePath = C:\Users\bg1\Documents\test\test_text.txt dwFileSize = 8562 Default Printer: EPSON PX-S06 Series hPrinter = 0x004faaac dwJob = 33 dwFileSize = 8562 dwWritten = 8562 C:\Users\bg1\Documents\test>
WritePrinterで、2ページ分バイナリデータを送ると、ページごとに分割されるわけではなく、まるまる書き込み成功となる。
なので2ページでもStartPagePrinterは1回で良さそう。
(今のところの設定とやり方では。)
2ページ印刷されてる。
いろいろネットでも調べたけど、複数ページ印刷で、StartPagePrinterをループで繰り返してる例は見当たらなかった。