画面上のプレビューモードとラベルプリンターの両方でラベルを印刷するこのルーチンがあります。各印刷操作が開始される前に、「印刷中」というラベルの付いた迷惑なダイアログ ボックスが画面に短時間表示され、本文には「ドキュメントのページ 1」と「キャンセル」ボタンが表示されます。印刷する前に、次のようなステートメントを使用してこれを排除できると述べた参考文献を見つけました。
MyPowderlabel.PrintController = new System.Drawing.Printing.StandardPrintController();
これは効果がなかったようです。
コードは次のとおりです。
private void PrintLabel(object sender, EventArgs e)
{ // This routine starts up the print operation for the current label
try
{
PrintDocument MyPowderlabel;
MyPowderlabel = new PrintDocument();
PaperSize PS = null; //Label dimensions for printer are in units of .01"
PS = new PaperSize("Custom Size", 134, 118 ); // 3.4 cm wide x 3 cm high
MyPowderlabel.DefaultPageSettings.PaperSize = PS;
MyPowderlabel.DefaultPageSettings.Landscape = false;
MyPowderlabel.PrintPage += new PrintPageEventHandler(MyPowderlabel_PrintPage);
MyPowderlabel.PrinterSettings.PrinterName = printersList.Text;
// Display the label in the print preview box
printPreviewControl1.Document = MyPowderlabel;
printPreviewControl1.Document.PrintController = new System.Drawing.Printing.StandardPrintController();
printPreviewControl1.Show();
//The next statement is needed to insure that the label preview will be displayed for at least
//a short time before it gets erased before the next barcode is processed.
Application.DoEvents();
if (!ckPrintPreview.Checked)
{
// Send the label to the selected (hard copy) printer
MyPowderlabel.PrintController = new System.Drawing.Printing.StandardPrintController();
MyPowderlabel.Print();
}
}
catch (Exception EX)
{
MessageBox.Show("Error while trying to send label to printer\r\n" + EX.Message);
}
}