我正在使用c#开发全屏信息亭应用程序。我需要打印门票和收据。我使用PrintDocument类进行打印。打印机完美打印,但我需要禁用打印过程中显示的弹出对话框。
我听说可以通过控制面板中的“打印机和传真”禁用它,但我在控制面板中没有“打印机和传真”。
我可以禁用显示的对话框吗?如果可以,我该怎么做?
答案 0 :(得分:52)
我认为将PrintDocument
PrintController
StandardPrintController
设置为PrintDocument printDocument = new PrintDocument();
PrintController printController = new StandardPrintController();
printDocument.PrintController = printController;
应解决此问题。
{{1}}
希望这会有所帮助。
答案 1 :(得分:5)
很棒的问题和答案。这是用于vb.net的VB.Net版本的googling没有返回任何有意义的结果。
Dim printDocument As New System.Drawing.Printing.PrintDocument
Dim printController As New System.Drawing.Printing.StandardPrintController
printDocument.PrintController = printController
答案 2 :(得分:1)
Windows 10,8,7和& Server 2012 注意:此选项在Windows的Home版本中不可用。
按住Windows键,然后按“R”以显示Windows运行对话框。 输入“printmanagement.msc”,然后按“Enter”。 展开“打印机服务器”,然后右键单击计算机名称并选择“打印机服务器属性”。 选择“高级”选项卡。 取消选中“显示本地打印机的信息通知”和“显示网络打印机的信息通知”。
答案 3 :(得分:0)
这对我有用。你可以试试这个
PrintDocument document = new PrintDocument();
PrintDialog dialog = new PrintDialog();
PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
private Font printFont;
private string stringToPrint;
// private int linesPerPage=9;
private Font printFont1;
QRCode qrCode1;
private string stringToPrint1;
private string databasePath;
int i=1;
public Form1()
{
InitializeComponent();
//document.DefaultPageSettings.PrinterSettings.PrinterName = "GODEX500";
// document.DefaultPageSettings.Landscape = true;
document.DefaultPageSettings.PaperSize = new PaperSize("75 x50 mm", 300, 200);
document.DefaultPageSettings.Margins = new Margins(1, 1, 1, 1);
printFont = new Font("Arial", 10);
// printFont1 = new Font("NewBarcodeFont", 12);
// document= new Font("GODEX-NewBarcodeFont", 12, FontStyle.Regular);
// document.OriginAtMargins = true;
//This PrintController worked fine and not showing printing this document using window
PrintController printController = new StandardPrintController();
document.PrintController = printController;
document.PrintPage += new PrintPageEventHandler(document_PrintPage);
}