【发布时间】:2012-10-02 06:35:35
【问题描述】:
我正在使用 COM 自动化打开一个 xls 文件并将其打印到虚拟 PDF 打印机。
Sheets sheets(m_Application.GetSheets());
sheets.PrintOut(CovOptional,CovOptional,CovOptional,CovOptional,COleVariant(_T("My PDF Printer")),CovOptional,CovOptional);
但是,如果文件有多个工作表,excel 会为每个工作表创建一个单独的打印作业,所以我会得到几个 PDF 文件而不是一个。
如何强制它在一个打印作业中打印所有工作表?
【问题讨论】:
-
Excel 2007 及更高版本可以直接创建 PDF 输出,因此请尝试在此过程中录制宏并将其用作起点。如果您在另存为 PDF 之前选择了多张工作表,则会将它们全部放在一个文件中。
-
很遗憾,该应用程序不适用于内部使用。它需要至少支持Office 2003,很多人还在使用它。
-
'Sheets' 类是否真的让您能够在一个作业中打印多张纸?如果不是,您需要将该类继承到自定义类并添加自定义方法。如果是,那么您是否使用了正确的方法?如果是这样,您在该方法中的论点是否正确?
-
@satuon - 根据您的编辑,您可以打印两次(首先到 MS 图像打印机),然后删除第一个文档。
-
如果我走那条路,我最好在创建 PDF 文件后合并它们。如果我找不到强制 Excel 在单个作业中打印的方法,我正在考虑这样做。
标签: c++ excel com printing office-automation