你好stackoverflow社區,我正在開發一個簡單的Windows窗體應用程序,它有一個偵聽器在特定目錄偵聽一個txt文件,如果偵聽器檢測到一個新文件,它會自動將txt文件發送到本地默認打印機,但它也會顯示「保存打印輸出爲」對話框,我需要打印過程是即時的,無需與任何對話框交互。如何刪除「保存打印輸出爲」對話框時打印一個txt文件#
爲此,我使用當前命名空間「using System.Drawing.Printing; using System.IO;」我已經看到了Print()方法的定義,但好像代碼被保護了,所以我不能訪問「保存打印輸出爲」對話框。有任何想法嗎?
這裏是我的代碼...
的fileWatcher:
private void fileSystemWatcher1_Created(object sender, FileSystemEventArgs e)
{
try
{
MyPrintMethod(e.FullPath);
}
catch (IOException)
{
}
}
我的打印方法:
private void MyPrintMethod(string path)
{
string s = File.ReadAllText(path);
printDocument1.PrintController = new StandardPrintController();
printDocument1.PrintPage += delegate (object sender1, PrintPageEventArgs e1)
{
e1.Graphics.DrawString(s, new Font("Times New Roman", 12), new SolidBrush(Color.Black), new RectangleF(0, 0, printDocument1.DefaultPageSettings.PrintableArea.Width, printDocument1.DefaultPageSettings.PrintableArea.Height));
};
try
{
printDocument1.Print();
}
catch (Exception ex)
{
throw new Exception("Exception Occured While Printing", ex);
}
}
我不能看到你指定打印到的實際打印機。 –
嘗試此鏈接的想法或做一個谷歌搜索 - http://stackoverflow.com/questions/10572420/how-to-skip-the-dialog-of-printing-in-printdocument-print-and-print-page- direc – MethodMan
'printDocument1'在哪裏定義?我只是複製並粘貼了你的代碼,但我不得不添加'var printDocument1 = new PrintDocument();'來編譯它,並且在沒有對話框的情況下,它在我的默認打印機上正常打印。 –