非常紧急的问题:今天一定要搞定的!有关打印的,大家一定要帮个忙!
非常紧急的问题:今天一定要搞定的!有关打印的,大家一定要帮个忙!
楼主RedGuest(Haha)2002-05-14 15:19:03 在 C++ Builder / 基础类 提问 //打印菜单
try
{
TPrinter *devicePrinter = Printer();
devicePrinter->PrinterIndex = 0; //缺省打印机
devicePrinter->Refresh();
MessageBox(NULL, (devicePrinter->Printers->Text.c_str(), "信息", MB_OK);
TRect r = Rect(100,100,devicePrinter->PageWidth - 100,
devicePrinter->PageHeight - 100);
devicePrinter->BeginDoc();
devicePrinter->NewPage();
devicePrinter->Canvas->TextOut(100, 100, data->GetText());
devicePrinter->Canvas->TextRect(r, 100, 100, data->GetText());
//devicePrinter->Refresh();
devicePrinter->EndDoc();
} catch(...)
{
if (Debug)
{
MessageBox(NULL, "打印失败了", "错误", MB_OK | MB_ICONERROR);
}
return false;
}
return true;
--------------------------------------------------------------------------
上面是我照帮助上的例子抄的,但实际上打印的时候,只有打印机的图标出现在托盘里,却没有任何的打印任务在里面,没有任何东西打印出来, 大家帮忙看看如何? 问题点数:100、回复次数:5Top
1 楼Chimae(David)回复于 2002-05-14 15:29:17 得分 10
Printer的帮助里有!Top
2 楼hotxu(hotxu)回复于 2002-05-14 15:30:27 得分 10
char Device_C;
char Driver_C;
char Port_C;
THandle hDMode_C;
PDevMode pDMode_C;
TPrinter *Prntr_C = Printer();
Prntr_C->PrinterIndex=0; //设置打印机
//获取打印机
Prntr_C->GetPrinter(Device_C,Driver_C,Port_C,hDMode_C);
if (hDMode_C!=NULL)
{
pDMode_C=(PDevMode)GlobalLock((HGLOBAL &)hDMode_C);
if (pDMode_C!=NULL)
{
pDMode_C->dmPaperSize= 256;
pDMode_C->dmFields=pDMode_C->dmFields | DM_PAPERSIZE;
pDMode_C->dmPaperLength =1400; //高 *0.1mm
pDMode_C->dmFields =pDMode_C->dmFields| DM_PAPERLENGTH;
pDMode_C->dmPaperWidth = 2400; //宽 *0.1mm
pDMode_C->dmFields =pDMode_C->dmFields| DM_PAPERWIDTH;
}
ResetDC(Prntr_C->Handle,pDMode_C);
GlobalUnlock((HGLOBAL &)hDMode_C);
}
//开始打印
TFontStyles Style;
Style >>fsBold;
Prntr_C->Canvas->Font->Style=Style;
Prntr_C->Canvas->Font->Name="宋体";
String Title;
Title="结账账单";
Prntr_C->Canvas->Font->Size=16;
Prntr_C->BeginDoc();
Prntr_C->Canvas->TextOutA(1100,10,Title);
Prntr_C->EndDoc();Top
3 楼Chimae(David)回复于 2002-05-14 15:31:33 得分 0
data???Top
4 楼RedProgramer(TST : RedSteel)回复于 2002-05-14 15:43:01 得分 40
print()
{
TPrinter * Prnt=Printer();
Prnt->BeginDoc();
Prnt->Canvas->Font->Size=12;
Prnt->Title = "";
Prnt->Canvas->TextOut(100,100,"试验");
Prnt->EndDoc();
}
应该没问题,在我的程序中就是这么做的;
Top
5 楼jerry921(jerry)回复于 2002-05-14 16:18:50 得分 30
print()
{
Printer()->BeginDoc();
Printer()->Canvas->Font->Size=12;
Printer()->Title = "";
Printer()->Canvas->TextOut(100,100,"试验");
Printer()->EndDoc();
}
就可以了Top
6 楼fangrk(加把油,伙计!)回复于 2002-05-14 16:23:19 得分 10
打印机设置好了吗?Top
7 楼RedGuest(Haha)回复于 2002-05-14 16:48:28 得分 0
问题成功解决了,谢谢大家(作痛哭装...................,我的100分啊)
--------------------------------------------------------------------
呵呵,原来一定要指定Font & Title ,考,不知道为什么, 希望有高手研究研究:)Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
