有沒有辦法在.Net(或WMI)中確定打印驅動程序打印到文件時是否打印爲PCL或PostScript或XPS格式?有沒有辦法在.Net(或WMI)中確定打印驅動程序打印到文件時是否打印爲PCL或PostScript格式?
1
A
回答
0
您應該可以通過WMI收集這些信息。 Win32_Printer.DefaultLanguage假設返回這個值。如果我回想過去嘗試這樣做,許多打印機驅動程序不會返回一個值。
入住這裏: http://msdn.microsoft.com/en-us/library/aa394363%28VS.85%29.aspx
財產以後這樣的「應該」做的伎倆:
System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_Printer");
ManagementObjectSearcher mos = new ManagementObjectSearcher(oq);
ManagementObjectCollection moc = mos.Get();
foreach(ManagementObject mo in moc)
{
string name = mo["Name"].ToString();
string language = mo["DefaultLanguage"].ToString();
MessageBox.Show(String.Format("Printer: {0} -- Language: {1}", name, language);
}
這將返回一個UINT16,檢查鏈接「默認語言」到英語翻譯如:PCL,Postscript,HPGL等。
我可以問爲什麼你試圖事先確定輸出是什麼?如果這是一個打印到文件的過程,我只是看看輸出並確定它是什麼。大多數較新的打印驅動程序將在這樣
作業的頂部插入PJL聲明@PJL ENTER LANUGAGE =「PCL」
或者乾脆看看代碼本身揭祕指標,如用於PCL或% PS for Postscript等
1
如果您的目標操作系統是Windows,還有一種方法是在驅動程序和打印隊列上執行一些邏輯。您可以使用WMI/.NET API來獲取驅動程序DLL名稱。如果是unidrv.dll,那麼驅動程序是PCL驅動程序,如果它是pscript.dll,那麼它是一個PS驅動程序。當然,這是針對基於MS Unidrv/PScript驅動程序框架的驅動程序,但您會發現大部分已安裝的驅動程序都基於此框架。
相關問題
- 1. 如何使用Qt5無驅動程序打印(PostScript/PCL)
- 2. Mongo C#驅動程序2.0 - 有沒有辦法打印FilterDefinition
- 3. 調試「打印到文件」打印驅動程序代碼
- 4. 確定PostScript打印支持
- 5. Word.Interop打印到pcl文件。
- 6. 有沒有辦法打印到DataMax打印機通過她的驅動程序 - 在客戶端使用asp.net?
- 7. 沒有打印特定CSS的打印
- 8. Windows 8,打印到PostScript打印機到文件
- 9. 在MVC中直接打印沒有熱打印機的打印對話框.net
- 10. 將打印文件複製到文件夾的打印機驅動程序?
- 11. 使用PS(postscript)文件將轉義碼打印到打印機
- 12. 有沒有辦法檢查打印過程是否成功?
- 13. 有沒有辦法打印SEL操作?
- 14. 將輸出打印到文件中或不打印輸出?
- 15. 有沒有辦法從createArray()在子程序print()中打印multArray?
- 16. 程序沒有正確打印
- 17. PowerPoint打印C# - 沒有打印
- 18. 是否可以直接打印到沒有確認窗口的打印機
- 19. Windows 8打印Postscript文件編程
- 20. 從vim打印到Postscript
- 21. PyCrypto沒有正確打印
- 22. IE沒有正確打印
- 23. 沒有正確打印
- 24. 在postgreSQL驅動程序中打印PreparedStatement
- 25. PYTHON打印功能,沒有結果,打印時沒有錯誤
- 26. 有沒有辦法'漂亮'打印MongoDB shell輸出到文件?
- 27. 沒有在文本文件中打印
- 28. 如何在c#中打印pcl文件?
- 29. 打印機驅動程序沒有用TSCLib.dll指定
- 30. 打印爲pdf格式打印機造成損壞的文件