2012-02-01 16 views
3

仮想PDFプリンタに複数のページを印刷しています。すべてのページが同じ用紙サイズを持つわけではありません。私のコードの概要は次のとおりです。プログラムで印刷するとき、ページごとに異なるページサイズを指定できますか?

DEVMODE DevMode; 
InitDevMode(&DevMode); 
SetThePageSize(&DevMode); 

HDC hPrinterDC = CreateDC("WINSPOOL", "MyPrinter", NULL, &DevMode); 

DOCINFO DocInfo; 
memset(&DocInfo, 0, sizeof(DocInfo)); 
DocInfo.cbSize = sizeof(DocInfo); 

StartDoc(hPrinterDC, &DocInfo); 

for (int i = 0; i < nPagesCount; i++) 
{ 
    StartPage(hPrinterDC); 

    DoTheDrawing(); 

    EndPage(hPrinterDC); 
} 

EndDoc(hPrinterDC); 

これで、ページサイズを1回だけ選択できます。各ページごとに異なるページサイズを持たせるために、私は何とか新しいスタートページの前に新しいDEVMODEで印刷デバイスコンテキストを更新する必要があります。これはできますか?

答えて

3

はい、希望のページサイズでDevModeを変更し、ResetDC(hPrinterDC、DevMode)を呼び出します。

EDIT:ああ、これはEndPageの後、StartPageの前に行います。

関連する問題