我可以禁用打印页面 x of y 弹窗吗?

34

我正在使用c#开发一个全屏幕亭应用程序。 我需要打印门票和收据。 我使用PrintDocument类进行打印。 打印机可以正常打印,但是我需要禁用打印期间显示的弹出对话框。

截图

听说可以在控制面板中的“打印机和传真”中禁用它,但我在控制面板中没有找到“打印机和传真”选项。

我能否禁用显示的对话框? 如果可以,如何做到?

4个回答

67

我相信将你的PrintDocumentPrintController设置为StandardPrintController应该可以解决这个问题。

PrintDocument printDocument = new PrintDocument();
PrintController printController = new StandardPrintController();
printDocument.PrintController = printController;

希望这有所帮助。


@Krankoloji 没问题,很高兴能帮助到你! - SeeSharp
@SeeSharp:如果您调用printDocument.Print,则可以正常工作,但如果调用printDocument.DisplayDialog,则无法正常工作。没有dialogController等效项。有什么想法吗? - Bill
这并没有防止分页弹出对话框。Visual Studio 2017 C# .NET Framework 4.6.2,Windows 10 Ent 2016 LTSP。 - gridtrak

5

好问题和答案。这里是VB.Net版本,搜索vb.net没有返回任何有意义的结果。

  Dim printDocument As New System.Drawing.Printing.PrintDocument
  Dim printController As New System.Drawing.Printing.StandardPrintController
  printDocument.PrintController = printController

1

Windows 10、8、7和Server 2012 注意:此选项不适用于Windows Home版本。

按住Windows键,然后按“R”键打开Windows运行对话框。 输入“printmanagement.msc”,然后按“Enter”键。 展开“打印机服务器”,然后右键单击计算机名称并选择“打印机服务器属性”。 选择“高级”选项卡。 取消选中“显示本地打印机的信息通知”和“显示网络打印机的信息通知”。


这对问题没有任何影响。对话框仍然显示。Windows 10 Enterprise 2016 LTSB所有当前更新。 - gridtrak

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);

        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接