2013-10-01 106 views
0

我試圖複製打印作業(這意味着當有人打印文檔時,此文檔也會在另一臺打印機上自動打印)。目的是要將所有打印的文檔轉換爲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

謝謝

回答

2

這可不行。請閱讀文檔。

打印作業的順序如下:

  1. 要開始打印作業,調用StartDocPrinter。
  2. 要開始每個頁面,請調用StartPagePrinter。
  3. 要將數據寫入頁面,請調用WritePrinter。
  4. 要結束每個頁面,請調用EndPagePrinter。
  5. 根據需要爲頁數重複2,3和4。
  6. 要結束打印作業,請調用EndDocPrinter。
+0

謝謝你,但SPL文件已經有這個信息,所以它不必這樣做。無論如何,你知道如何從SPL文件中檢索頁面的數量和每個頁面的內容嗎? – banuj

+1

ReadPrinter/WritePrinter不能像文件一樣工作。 YXou無法讀取打印作業數據並重新寫入......這就是我想用我的答案告訴你的。 – xMRi

+0

現在我越來越。感謝您的信息。 – banuj

相關問題