所以我有一個要列印的視窗。為此,我創建了一個列印對話框。看起來像這樣:
PrinterSettings settings = new PrinterSettings();
string Printer = settings.PrinterName;
System.Windows.Controls.PrintDialog printDlg = new System.Windows.Controls.PrintDialog();
printDlg.PrintQueue = new PrintQueue(new PrintServer(), Printer);
printDlg.PrintTicket.CopyCount = 1;
printDlg.PrintTicket.PageOrientation = PageOrientation.Landscape;
printDlg.PrintVisual(this, "Window Printing.");
但出于某種原因,它會立即打開一個對話框,將該程式保存為 PDF。但我想直接將它列印到我的列印機,沒有那個對話框。那么為什么它不列印到我的列印機呢?我怎樣才能讓它發揮作用。
uj5u.com熱心網友回復:
您確定您選擇了正確的列印機嗎?因為PrintDialog如果它的列印機設定為檔案列印機,它將表現得像這樣,例如:"Microsoft Print to PDF"。(然后,顯然,您必須提供列印機應該列印到的檔案的名稱,因此出現“保存”對話框。)
檢查您安裝了哪些列印機(或者更確切地說,PrintQueues您有哪些可用的列印機):
LocalPrintServer myPrintServer = new LocalPrintServer();
foreach (PrintQueue pq in myPrintServer.GetPrintQueues())
{
Console.WriteLine(pq.Name);
}
您確定要設定其中之一嗎?哪一個是您系統中的默認設定?它可能是檔案列印機嗎?
嘗試在代碼中將列印機名稱設定為正確的物理列印機,并檢查是否會列印任何內容:
string myPrinterName = "My Printer"; // <= put an existing name here
LocalPrintServer myPrintServer = new LocalPrintServer();
PrintDialog printDlg = new PrintDialog();
PrintQueue printQueue = myPrintServer.GetPrintQueue(myPrinterName);
printDlg.PrintQueue = printQueue;
printDlg.PrintTicket.CopyCount = 1;
printDlg.PrintTicket.PageOrientation = PageOrientation.Landscape;
printDlg.PrintVisual(this, "Window Printing.");
系統中,列印機配置是否正確?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/381106.html
