Windows 重复打印作业

Windows 重复打印作业,windows,winapi,printing,Windows,Winapi,Printing,我正在尝试复制打印作业(这意味着当有人打印文档时,该文档也会自动打印到另一台打印机上)。其目的是,我想将所有打印的文档转换为pdf格式,并将它们发送到服务器 我可以使用findfirstpracticenotification检索所有打印作业,也可以使用ReadPrinter检索作业内容 这份工作的形式很简单 但是,当我想使用WritePrinter将此作业写入另一台打印机时,该作业似乎到达了打印机,在新打印机的状态窗口中,该作业已写入Printed,但不会发生任何情况。工作没有送到印刷厂 复制

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

我可以使用
findfirstpracticenotification
检索所有打印作业,也可以使用
ReadPrinter
检索作业内容

这份工作的形式很简单

但是,当我想使用
WritePrinter
将此作业写入另一台打印机时,该作业似乎到达了打印机,在新打印机的状态窗口中,该作业已写入
Printed
,但不会发生任何情况。工作没有送到印刷厂

复制作业的代码为:

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

    else
    {
        if (!WritePrinter(hPrinterNew, lpBytes, dwBytesRead, &dwBytesWritten))
        {
            return FALSE;
        }
    }
}while(dwBytesRead!=0);
有人知道它出了什么问题以及如何修复吗

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


谢谢

这不行。请阅读文件

打印作业的顺序如下所示:

  • 要开始打印作业,请调用StartDocInter
  • 要开始每页,请调用StartPagePrinter
  • 要将数据写入页面,请调用WritePrinter
  • 要结束每页,请调用EndPagePrinter
  • 根据需要重复2、3和4页
  • 要结束打印作业,请调用EndDocPrinter

  • 谢谢,但是SPL文件已经有了这些信息,所以不必这样做。无论如何,您知道如何从SPL文件中检索页数和每页的内容吗?ReadPrinter/WritePrinter与文件不同。YXou无法读取打印作业数据并再次写入。。。这就是我想告诉你的答案。