在PrintOut OLE函数中设置活动打印机

时间:2011-03-17 14:30:50

标签: c++ excel com ms-office ole

我使用PrintOut功能

Excel::_ApplicationPtr app("Excel.Application");

app->Visible[0] = false;

Excel::_WorkbookPtr book = app->Workbooks->Add();
Excel::_WorksheetPtr sheet = book->Worksheets->Item[1];
....

book->Worksheets->PrintOut(1, 1, 1, false, NULL, NULL, NULL, false, false);

但这是错的。该函数的定义是:

PrintOut ( const _variant_t & From, const _variant_t & To, const _variant_t & Copies, const _variant_t & Preview, const _variant_t & ActivePrinter, const _variant_t & PrintToFile, const _variant_t & Collate, const _variant_t & PrToFileName, const _variant_t & IgnorePrintAreas, long lcid );

如何正确设置ActivePrinter?

1 个答案:

答案 0 :(得分:1)

根据this MSDN article Active Printer 实际上是您要使用的打印机的名称,所以它是一个字符串,它也是一个可选参数,所以我想你可以只是在那里传递空变量:

book->Worksheets->PrintOut( .., _variant_t(), ... );