お世話になっております。
回答ありがとうございます。
ご教授いただいたDEVMODE構造体を用いてプリンタ設定変更を試みました。しかし、以下のソースでdmCopies(印刷部数)の設定はうまくいくのですが、dmScale(印刷倍率)の変更はうまくいきません。
DEVMODE構造体取得は成功しているようなのですが、縮小印刷させるよう倍率を変更することはできないのでしょうか。
pDevMode->dmFields = DM_SCALE;
pDevMode->dmCopies = 2; //2部印刷
pDevMode->dmScale = 75; //倍率75%
if ( ! wrSetReportPrinter ( *HwrRepHdl, NULL, DevMode ))
{
// 詳細なエラーコードを取得
dwEC = wrGetErrorCode ( *HwrRepHdl, TRUE ) ;
return FALSE ;
}
処理手順は以下のようになっております。
1.EnumPrinters利用可能なプリンタを列挙
2.GetProfileStringで通常使うプリンター名 を取得
3.OpenPrinterで指定したプリンタをオープンし、プリンタハンドルを取得
4.DocumentPropertiesでDEVMODE構造体を取得するために必要なバッファーサイズを計算
5.mallocでDEVMODE構造体の領域を確保します。
6.DocumentPropertiesでDEVMODE構造体の情報を取得
7.freeでメモリ開放
8.ClosePrinterで指定したプリンタをクローズ
9.DEVMODE構造体のdmScale(倍率)の値を変更
10.wrSetReportPrinterで変更したDEVMODE構造体の情報をセット