【问题标题】:Set active printer in PrintOut OLE function在 PrintOut OLE 函数中设置活动打印机
【发布时间】:2011-07-17 11:05:13
【问题描述】:

我使用打印输出功能

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 ?

【问题讨论】:

  • 出了什么问题?您期望或需要发生什么?
  • 我不知道如何获取 ActivePrinter

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


【解决方案1】:

根据this MSDN article Active Printer其实就是你要使用的打印机的名字,所以它是一个字符串,也是一个可选参数,所以我猜你可以通过那里的空变体:

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

【讨论】:

  • 我尝试正确传递正确的参数:pChartXYZ->PrintOut(1, 1, 1, true, app->ActivePrinter, NULL, NULL, false, false);但图表未打印。
  • 有打印对话框,快速隐藏。但不要将此任务添加到打印队列中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 2015-07-07
相关资源
最近更新 更多