在某些 Excel (2003) 工作簿中,当我尝试打印 多张工作表时,Excel 将这些工作表视为单独的打印作业。这会破坏我一直在编写的 excel 自动化应用程序,因为它会导致 Adobe PDF 打印机停止并要求用户提供第二个文件名。
看起来这可能与每页的指定打印区域有关,尽管清除(甚至重置)打印区域并没有什么不同。
如何强制 Excel 将所有选定的工作表打印为单个打印作业?(我使用的是虚拟 Adobe PDF 打印机)
除此之外,我如何才能在打印前检测到 Excel 何时将一个或多个选定的选项卡视为单独的打印作业?
我正在使用 C3/.net3.5 自动化 Excel 2003,并使用 Acrobat 7 Pro 安装的 Adobe PDF 打印机进行打印。
最佳答案
使用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();
关于c# - 强制 Excel 将多张纸打印为一个作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5821818/