【问题标题】:Can I specify different page sizes for each page when printing programatically?以编程方式打印时,我可以为每页指定不同的页面尺寸吗?
【发布时间】:2012-02-01 16:08:59
【问题描述】:

我正在将多页打印到虚拟 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 更新打印设备上下文。这个可以吗?

【问题讨论】:

    标签: c++ winapi printing


    【解决方案1】:

    是的,用所需的页面大小更改您的 DevMode 并调用 ResetDC(hPrinterDC, DevMode);

    编辑:哦,在 EndPage 之后、StartPage 之前执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-23
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 2014-04-27
      • 2011-01-15
      • 2010-11-12
      相关资源
      最近更新 更多