奇怪的打印问题(更正)救命啊!!!
前一次提出的打印问题,我把现象描述错误,让大家误解了,特此道歉。
经过仔细研究我把程序出现异常的语句,抽离出来,供大家探讨。
以下程序经过编译运行,出现异常。打印的60个图形中,会随机的有
1-3个不打印。但有时,60个图形又均可打印。我换了五台计算机实验。
其中四台有异常情况(配置并不相同),一台没有异常情况。
打印机为激光黑白打印机,600dpi,试过canon LBP800和hp 6l,
均出现异常情况。
我快被折磨死了,大家快救命啊!!!
#include <Printers.hpp>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap * Bitmap = new Graphics::TBitmap();
AnsiString AppPath = ExtractFilePath(Application->ExeName);
AnsiString PdfFileName = AppPath+"Temp.Bmp";
// Temp.Bmp为长820pixel宽216pixel的黑白图形
// 当Temp.Bmp为同样大小的真彩图形时,异常情况依然存在
int Left, Top; // 打印图形的左上角坐标
int LNext = 1000; // 打印图形的列间距
int TNext = 400; // 打印图形的行间距
Printer()->BeginDoc();
TCanvas * OutCanvas = Printer()->Canvas;
// 重复打印15行4列共60个图形
Left = 500;
for(int i=0; i<4; i++)
{
Top = 500;
for(int j=0; j<15; j++)
{
Bitmap->LoadFromFile(PdfFileName); // 每次都从同一文件读取图形
OutCanvas->Draw(Left,Top,Bitmap); // 打印图形
Top += TNext;
}
Left += LNext;
}
Printer()->EndDoc();
delete Bitmap;
}