【问题标题】:.NET PrintDocument - Text gets cut off.NET PrintDocument - 文本被截断
【发布时间】:2009-10-28 09:09:55
【问题描述】:

我有一个写入收据的应用程序(C#、.NET 3.5)。它们通常使用带有 .NET PrintDocument 的小型收据打印机打印。问题是我想用普通打印机打印的例外情况。在这些情况下,文本会被截断。我希望有一个检查或开关来防止这种情况,但仍然保持小型打印机上的紧边距。

处理这个问题的最佳方法是什么?我可以在不接触图形生成的情况下做到这一点吗?

【问题讨论】:

    标签: c# .net printing


    【解决方案1】:

    在 PrintDocument 中设置打印机后,您可以使用以下值查看当前的 PaperSize:

    PrintDocument.PrinterSettings.DefaultPageSettings.PaperSize

    或许:

    PrintDocument.PrinterSettings.PaperSizes

    【讨论】:

      【解决方案2】:

      我的问题是我正在设置打印机Document.DefaultPageSettings.PaperSize。

      相反,我推荐this

      private PrintDocument _printDocument = new PrintDocument();
      private int _checkPrint;
      public Form1()
      {
          InitializeComponent();
          _printDocument.BeginPrint += _printDocument_BeginPrint;
          _printDocument.PrintPage += _printDocument_PrintPage;
      }
      
      private void btnPrint_Click(object sender, EventArgs e)
      {
          PrintDialog printDialog=new PrintDialog();
          if (printDialog.ShowDialog() == DialogResult.OK)
              _printDocument.Print();
      }
      
      private void _printDocument_PrintPage(object sender, PrintPageEventArgs e)
      {
          // Print the content of RichTextBox. Store the last character printed.
          _checkPrint = rchEditor.Print(_checkPrint, rchEditor.TextLength, e);
      
          // Check for more pages
          e.HasMorePages = _checkPrint < rchEditor.TextLength;
      }
      
      private void _printDocument_BeginPrint(object sender, PrintEventArgs e)
      {
          _checkPrint = 0;
      }
      

      【讨论】:

        猜你喜欢
        • 2021-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多