重复的打印作业

时间:2013-10-01 09:08:26

标签: windows winapi printing

我正在尝试复制打印作业(这意味着当有人打印文档时,此文档也会自动打印在另一台打印机上)。目的是我想将所有打印的文档转换为pdf并将它们发送到服务器。

我能够使用FindFirstPrinterChangeNotification检索所有打印作业,并且能够使用ReadPrinter检索作业内容。

这份工作是以EMF形式。

但是,当我想使用WritePrinter将此作业写入另一台打印机时,作业似乎进入打印机,在新打印机的状态窗口中写入Printed,但它没有什么都不会发生。作业未到达打印机。

复制作业的代码是:

do{
    if (!ReadPrinter(hPrinterJob, lpBytes, BUFSIZE, &dwBytesRead))
    {
        return FALSE;
    }

    else
    {
        if (!WritePrinter(hPrinterNew, lpBytes, dwBytesRead, &dwBytesWritten))
        {
            return FALSE;
        }
    }
}while(dwBytesRead!=0);

有谁知道这是什么问题以及如何解决?

执行此类操作的软件示例如下:link

谢谢

1 个答案:

答案 0 :(得分:2)

这不起作用。请阅读文档。

打印作业的顺序如下:

  1. 要开始打印作业,请调用StartDocPrinter。
  2. 要开始每个页面,请调用StartPagePrinter。
  3. 要将数据写入页面,请调用WritePrinter。
  4. 要结束每个页面,请调用EndPagePrinter。
  5. 根据需要重复2,3和4页。
  6. 要结束打印作业,请调用EndDocPrinter。