2012-02-01 48 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); 

这使我只能选择一次页面大小。为了让每个页面具有不同的页面大小,我需要以某种方式在每个新的StartPage之前用新的DEVMODE更新打印设备上下文。这可以做到吗?

回答

3

是的,改变你的DevMode与所需的pagesize并调用ResetDC(hPrinterDC,DevMode);

编辑:哦,并在EndPage之后,但在StartPage之前。

相关问题