簡體   English   中英

如何將文件打印到特定打印機

[英]how to print file to a specific Printer

我用 C# 開發了一個 Windows 服務。 現在我正在尋找一種方法,它可以將特定文件(可以是 TIFF、PDF、HTML、MHT 或文本)打印到特定打印機。 問題是,當我使用 Process 並作為動詞打印時,如何設置特定的打印機? 在 Windows 服務中是否也可以使用進程? - 它不應該顯示一個窗口。

在我看來,這種提議的方法很可能會失敗。 使用 shell 動詞來打印將調用關聯的應用程序來執行打印。 對於這些文件類型中的許多,這將導致顯示 UI,這將在服務中失敗。

您提到的所有文件類型都可以直接從您的服務中打印,而無需求助於其他應用程序。 它需要更多的編碼,但我相信它是最可行的服務解決方案。

或者,您可以通過在交互式桌面上運行的標准應用程序執行此操作。 這應該可以正常工作,我認為您將控制運行此代碼的機器的硬件和軟件配置。 否則,使用 shell 動詞將是一種非常脆弱和脆弱的方法——誰知道隨機客戶的機器上有什么文件關聯?!

“Printto”動詞需要打印機名稱的參數。 有關更多詳細信息,請參閱MSDN 中的此示例

通過服務處理打印的方式是安全的。 如果您在 Windows 帳戶下運行,則該服務可以在沒有 UI 的情況下進行打印。 我在服務器上有一個打印服務,它有一個專用的用戶帳戶,每天打印 1000 個文件。 80 多種不同的聯網打印機。
您的服務必須具備以下條件:

  1. 它必須以標准 Windows 用戶身份運行
  2. 它必須能夠訪問可以保存要打印的文件的文件結構。 無論您打印什么,都必須存儲為文件,發送到打印機的文件不要忘記進行文件清理。
  3. 必須像連接打印機以打印電子郵件一樣連接打印機
  4. 在發送打印作業之前從打印機更改為打印機時,您必須重新設置每個打印機的默認打印機
  5. Telerik 和 windows word Interop 都可以用於打印。

請注意,在打印 PDF 的情況下,在無人看管的情況下打印 PDF 違反了 Adob​​e EULA。 假設 .pdf 擴展名與 Adob​​e PDF Reader(或本場景中的打印機...)相關聯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM