1.自动检测打印机
TPrinter *p=Printer();
TStringList *list=new TStringList();
list->Assign(p->Printers);//重点是这句
if(list->Count==0)
delete list;
else
{
// String temp="";
ComboBox1->Items->Clear();
for(int i=0;i<list->Count;i++)
{
//temp+=list->Strings[i]+"/n";
ComboBox1->Items->Add(list->Strings[i]);
}
}
2.在指定的打印机上打印报表
TPrinter *prt = Printer();
AnsiString Prt_Name = ""; // 可以根据具体要求更改,此变量存储打印机名称,这个名称就是win控制面板里打印机的名称
int IMP_INDEX = 0;
IMP_INDEX = prt->Printers->IndexOf(Prt_Name); //得到该打印机的系统id
frReport->LoadFromFile(File); // 读取打印文件
if (prt->PrinterIndex != IMP_INDEX) // 判断当前打印机是否是选择的打印机
{
// 如果不是,更改为当前打印机
frReport->ChangePrinter(prt->PrinterIndex,IMP_INDEX);
}
frReport->PrepareReport();
frReport->PrintPreparedReport("", 1, true, frAll); // 打印报表