c# - 强制 Excel 将多张纸打印为一个作业

标签 c# .net excel pdf adobe

在某些 Excel (2003) 工作簿中,当我尝试打印 多张工作表时,Excel 将这些工作表视为单独的打印作业。这会破坏我一直在编写的 excel 自动化应用程序,因为它会导致 Adob​​e PDF 打印机停止并要求用户提供第二个文件名。

看起来这可能与每页的指定打印区域有关,尽管清除(甚至重置)打印区域并没有什么不同。

如何强制 Excel 将所有选定的工作表打印为单个打印作业?(我使用的是虚拟 Adob​​e PDF 打印机)

除此之外,我如何才能在打印前检测到 Excel 何时将一个或多个选定的选项卡视为单独的打印作业?

我正在使用 C3/.net3.5 自动化 Excel 2003,并使用 Acrobat 7 Pro 安装的 Adob​​e 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/

相关文章:

c# - 在线设置值

C# .Net 从表单帖子中读取字符串输入

java - ExcelReader workbook.setMissingCellPolicy(Row.CREATE_NULL_AS_BLANK) 不起作用

c# - 为什么我们不需要返回 `using` 范围之外的值?

c# - 如何修改 ListView 栏?

c# - 创建自动过期文件

c# - 从 HTML 格式的电子邮件中解析文本

javascript - 在 asp.net 中,文本区域在内容之前有空格

VBA检查字符串是否遵循模式、空格、两个字母、六位数字

python - 读取 pandas 中的 excel 文件 - 带有 NaN 标题的列