2009-02-13 94 views
5

我知道這個問題之前已經被問過,但是沒有明確的答案。切換打印機托盤

如何以編程方式更改打印機托盤?

我想用python批量打印一些PDF文件。我需要從不同的托盤打印不同的頁面。打印機是理光2232C。有沒有辦法通過和Acrobat Reader命令行參數?我能夠使用Win32 API來找出哪些bin對應於哪個binnames,但這是關於它的。任何建議/快捷方式/等?

回答

5

好吧,我明白了這一點。答案是:

1。您需要本地打印機(如果您需要打印到網絡打印機,請下載驅動程序並將其添加爲本地打印機)
2.使用win32print獲取並設置默認打印機
3.也使用win32print,請使用以下代碼:

import win32print 
PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ALL_ACCESS} 
pHandle = win32print.OpenPrinter('RICOH-LOCAL', PRINTER_DEFAULTS) 
properties = win32print.GetPrinter(pHandle, 2) #get the properties 
pDevModeObj = properties["pDevMode"] #get the devmode 
automaticTray = 7 
tray_one = 1 
tray_two = 3 
tray_three = 2 
printer_tray = [] 
pDevModeObj.DefaultSource = tray_three #set the tray 
properties["pDevMode"]=pDevModeObj #write the devmode back to properties 
win32print.SetPrinter(pHandle,2,properties,0) #save the properties to the printer 
  • 就是這樣,在托盤已被改變
  • 印刷使用Internet Explorer(從格雷厄姆特大的博客)完成

    from win32com import client 
        import time 
        ie = client.Dispatch("InternetExplorer.Application") 
        def printPDFDocument(filename): 
         ie.Navigate(filename) 
         if ie.Busy: 
          time.sleep(1) 
         ie.Document.printAll() 
        ie.Quit() 
    
  • 完成

    1

    有沒有簡單的方法來做到這一點,因爲你指明要選擇從PDF特定頁面,並使用Acrobat Reader軟件

    實例把它們打印到特定箱:在信箋紙槽1,第2頁打印頁1在料倉2

    Acrobat Reader軟件只允許在命令行整個文檔的打印:

    你可以改變免費Ghostscript,做你想做的。

    或這個商業產品應該做的工作。 PDFPrint


    見Acrobat Reader軟件developer FAQ 24頁瞭解更多詳情

    AcroRd32.exe /噸路徑 「打印機名稱」, 「驅動程序名」, 「端口名」 - 啓動Adobe Reader和打印文件,同時抑制打印對話框。路徑必須完全指定。

    /t選項的四個參數計算爲path,printername,drivername和portname(所有字符串)。

    printername - 打印機的名稱。

    驅動程序名稱 - 打印機驅動程序的名稱,因爲它出現在打印機的屬性中。

    portname - 打印機的端口。 portname不能包含 - 打印機驅動程序的名稱,因爲它出現在打印機的屬性中。

    portname - 打印機的端口。端口名不能包含

    1

    這是不可能使用普通的PDF,如您有任何特別的箱子和托盤相結合創造新的打印作業(而不是所有的打印機允許你這樣做,施樂4x和DP系列允許你做這樣的事情)。我最好的辦法是用PostScript來處理:將PDF轉換爲PostScript,在那裏你可以訪問單個頁面,然後提取你需要的頁面,併爲每個這樣的頁面(或頁面)創建新的打印作業(例如使用Windows程序lpr)。爲了簡化任務,我會爲任何必須打印的紙盒和紙盒組合創建打印隊列,然後將這些隊列用作打印機。