如果隔一段时间再打印就是正常的白底黑字,但是如果连着间隔时间短打印就会出现黑底白字的情况,找不到解决办法。下面是代码:
PrintDC print;
PrinterInfo pf;
private void button1_Click(object sender, EventArgs e)
{
try
{
print = new PrintDC();
}
catch (Exception x)
{
MessageBox.Show(x.Message, "Error");
return;
}
pf.paperHeight = 1000;
pf.paperWidth = 0;
pf.pcs = IntPtr.Zero;
pf.port = COMnum;
pf.printOrient = PrintOrientation.PRINT_PO_PORTRAIT;
pf.printType = PrinterType.PRINT_PT_TIII_TIV;
pf.bRoll = 1;
if (print.PrinterSet(pf) == 0)
{
MessageBox.Show("DC_PrinterSet failed");
return;
}
// Driver flow
if (print.StartDoc() == 0)
{
MessageBox.Show("DC_StartDoc error");
return;
}
if (print.StartPage() == 0)
{
MessageBox.Show("DC_StartPage error");
return;
}
//double x, y, width, height;
//print.MapMode = MapMode.PRINT_MM_MM;
print.MapMode = MapMode.PRINT_MM_DOT;
FontProperty fontProperty = new FontProperty();
fontProperty.bDefault = false;
fontProperty.bItalic = true;
fontProperty.bStrikeout = false;
fontProperty.bUnderLine = true;
fontProperty.iCharSet = 0;
fontProperty.nWidth = 15;
fontProperty.nHeight = 36;
fontProperty.iWeight = 900;
print.SetFont(fontProperty);
string str;
str = "PRINT";
// print.PrintText(str, 0, 0);
fontProperty.bDefault = true;
print.SetFont(fontProperty);
//print.SetFontName("Tahoma");
str = "Do you know what I like? Summer vacation. I like it because I can go outside to play. If it rains, I can stay inside and play checkers. And this summer my family may go to Beijing, because we have not been
there yet.";
print.PrintTextBlock(str,
0, 40,
384, 160, 16);
print.EndDoc();
// print.FreeLib();
}