DOCINFO構造体に、出力パスを指定して、Microsoft Print to PDFで印刷すると、実際のプリンタに印刷されるわけではなく、指定のパスにPDF出力される。
DOCINFOA (wingdi.h) - Win32 apps | Microsoft Docs
Microsoft Print to PDF で C/C++ コードから出力ファイル名を指定する方法 - perce-neigeのブログ
shlwapi.libをリンク。
WM_CREATEで、
エディットコントロールをもう一つ用意して、実行ファイルと同じところにtest.pdfを作成する前提でパスを生成して、エディットコントロールにセット。
WM_COMMANDのID_ITEM_PRINTで、
エディットコントロールのパスをdi.lpszOutputにセットして、印刷。
Microsoft Print to PDF、これだね。
プリンターのプロパティで、
プリンター名をコピー。
起動するとパスがセットされている。
先程のプリンター名をセット。
印刷開始。
test.pdfが出力される。
開くとこんな感じで印字されている。
Sample/winapi/DOCINFO/DOCINFO/src/DOCINFO at master · bg1bgst333/Sample · GitHub