簡體   English   中英

Ghostscript.NET無法使用選定的打印機名稱進行打印

[英]Ghostscript.NET can't print with selected printer name

我想通過Ghostscript.NET打印帶有選定打印機名稱的pdf文件。 這個應用程序實際上是CefSharp瀏覽器的包裝器。 當用戶單擊下載按鈕時,它會直接下載並使用所選打印機打印出來。

Visual Studio帶打印功能

你可以看到上面的截圖,我通過URL查詢字符串傳遞打印機名稱。 另外,我已經設置了選項-dNOPAUSE-dNOPROMPT 但為什么它仍然出現在打印窗口,默認選擇的打印機不是我設置的?

知道這里出了什么問題嗎?

編輯:2016年3月4日上午11:31

對於命令行中的ghostscript,它就像

"C:\Program Files (x86)\gs\gs9.18\bin\gswin32c.exe"^
 -empty^
 -dPrinted^
 -dBATCH^
 -dNOPAUSE^
 -dNOPROMPT^
 -sFONTPATH=C:\Windows\Fonts^
 -dNOSAFER^
 -dNumCopies=1^
 -sDEVICE=mswinpr2^
 -sOutputFile="%printer%Brother MFC-295CN Printer"^
 -f C:\Users\Dell\AppData\Local\Temp\file-tmp.pdf

但它仍然顯示打印提示。

將-dQueryUser = 3添加到命令行,使用該打印機的默認設置直接打印到默認打印機。

如果要打印的打印機不是Windows默認打印機(在此系統上),則必須在打印對話框中指定打印機。 這是因為有2個斷開連接的實體。

1)您發送數據的打印機。 2)以正確的格式創建數據。

mswinpr2設備使用Windows打印系統從Ghostscript獲取渲染輸出並將其轉換為打印機可以理解的任何內容(PostScript,HP-PCL,Epson ESC / P等等)。 然后它將該數據發送到指定的打印機。 注意這就是為什么該打印機的驅動程序必須在本地可用。

但是,mswinpr2設備不知道哪個打印機設備驅動程序對應於“%printer%Name”形式的給定命名打印機,您必須告訴它。 如果指定的打印機是Windows默認打印機,那么您可以使用-dQueryUser = 3來表示,否則您需要顯示打印機對話框,以便用戶可以選擇正確的打印機,這就是mswinpr2用來創建數據的那個發送到打印機。

我相信它完全有可能弄錯了! 如果你在打印機對話框中選擇一個PostScript打印機,但是然后設置-sOuputFile =%printer%HP-PCL打印機“該組合將輸出格式為PostScript的輸出發送到需要PCL的打印機,那么在這種情況下的結果將是大量的垃圾打印。

您需要謹慎使用此設備,這就是為什么默認行為是讓您從可用打印機列表中選擇打印機。

暫無
暫無

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

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