强制Excel将多个工作表作为单个作业打印
本文关键字:单个 作业 打印 工作 Excel 强制 | 更新日期: 2023-09-27 17:53:50
在某些Excel(2003)工作簿中,当我尝试打印多个工作表时,Excel将这些工作表视为单独的打印作业。这使我一直在编写的excel自动化应用程序变得混乱,因为它导致Adobe PDF打印机停止并要求用户输入第二个文件名。
看起来这可能与每页指定的打印区域有关,尽管清除(甚至重置)打印区域并没有什么区别。
如何强制Excel将所有选定的工作表打印为单个打印作业?(我使用的是虚拟Adobe PDF打印机)
否则,在打印之前,当Excel将一个或多个选定的选项卡视为单独的打印作业时,我如何检测?
我正在用C3/net3.5自动化Excel 2003,并使用acrobat7 Pro安装的Adobe PDF打印机打印。
Use PrintOutEx():
foreach (Excel.Worksheet ws in wb.Worksheets)
{
Excel.PageSetup ps = (Excel.PageSetup)ws.PageSetup;
ws.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;
ws.PageSetup.Order = Excel.XlOrder.xlDownThenOver;
ws.PageSetup.FitToPagesWide = 1;
ws.PageSetup.FitToPagesTall = 50;
ws.PageSetup.Zoom = false;
}
wb.Worksheets.PrintOutEx();
根据微软的支持,Excel可能会决定为单个打印请求处理多个打印作业。单个Excel打印作业涵盖一个或多个打印区域。如果遍历打印区域并调用打印每个打印区域,则可以重新获得对输出的一些控制。
所有作业完成后,您可以继续将所有部分绑定到单个PDF文件中。前段时间,我使用这种方法(使用Win2PDF驱动程序)在现场将Excel转换为PDF。