Office.Interop.Word - 如何在两面打印文档?

时间:2012-02-27 15:18:16

标签: c# printing office-interop

我使用Word.Document.PrintOut方法打印文档(批量打印)。如何在两面打印文档?

MS Word 界面中,可以通过文件 - > 打印 - > 双面打印完成选项。

Word 2010,C#,.NET 3.5


非常感谢John的回答(+1)!我的研究结果如下:

  1. 我走到了约翰建议的第一条路上,发现了一些额外的路径 文章,例如 CodeProject Changing printer settings using C#)和several others中的“经典”文章。最后,我 得到了编译代码,用于设置Duplex属性,但是很多 本文的其他“受害者” - 此代码无效:)
  2. DocumentProperties API 失败后,我尝试将其放入 打印命令并得到以下结果:

    • 我的办公室打印机( Kyocera FS-C5100 )成功打印了一份文件 在两边,但是疯了,开始打印每个段落 单独的表......
    • 客户端打印机( Xerox 3600 )显然“不完全兼容惠普”,并且根本不打印两面!
  3. 所以我的调查仍在继续,如果有人有其他想法 - 欢迎!

3 个答案:

答案 0 :(得分:2)

HOWTO: Set Duplex Printing for Word Automation上有一篇Microsoft知识库文章,遗憾的是它不是您设置的简单属性。它是VB代码,但转换为C#应该很容易。

如果您知道使用的是PCL兼容打印机,则可以在文档中使用打印命令强制它为双面打印机。当您需要在单面和双面中间文档之间切换时,这非常有用。您可以在文档的标题中添加一个字段,然后分别使用27“& l1S”或27“& l2S”表示双工长和双工短路。 Microsoft KB article.

提供了完整的PCL打印命令列表

答案 1 :(得分:1)

问题无法直接解决,但可以实施解决方法。

应在客户端系统上多次安装一台“物理”打印机,以便在打印机列表中以不同的名称列出两次。

此外,其中一台“打印机”必须配置为双面打印,其次是正常打印 - 单面打印。根据应用程序的需要,它会选择两个“打印机”中的一个来打印文档。

答案 2 :(得分:0)

在ManualDuplexPrint参数设置为true的情况下,调用Microsoft.Office.Interop.Word.Document对象的PrintOut()方法。