在Duplexpage中打印word文档

时间:2014-03-08 15:06:41

标签: python printing com ms-word word-vba

我正在尝试自动执行在~30 Word文档(* .doc)的双页打印两份副本的任务。我想使用py2exe将转换为.exe的程序(我只为Windows计算机计划)发送。我知道我可以手动检查选项,但我将无法在20台左右的计算机上使用它,以及我无法安装在这台计算机上的新软件(这就是为什么我要将其转换为.exe)。

我复制this solution进行打印,但我不能让它适应我想做的事情:

from win32com import client
import time

word = client.Dispatch("Word.Application")

filename=input("What files do you want to print?")

def printWordDocument(filename):
    """Given a name of a file prints it. TODO: Add double page."""

    word.Documents.Open(filename)
    word.ActiveDocument.PrintOut()
    time.sleep(2)
    word.ActiveDocument.Close()

    word.Quit()

我找不到以双页打印的任何选项,或者至少是自动打印,PrintOut方法双页的唯一选项是ManualDuplexPrint,在文档中说:“真打印双面没有双面打印套件的打印机上的文档。“,但我不想让打印所有文档更加容易。并使程序可移植到其他计算机,而无需修改Word文档(我不创建它们)。

还有其他办法吗?或者其他任何选择吗?

更新

我无法使用visual-basic(但是)进行编码,但如果我得到一个模板或一些提示,我想我会设法根据我的条件制作一些东西。

1 个答案:

答案 0 :(得分:0)

我已经结束了一个宏,但这只适用于我自己的计算机,而不适用于应该工作的所有计算机。

Sub Test()
'
' Test Macro
' Print in double page and 2 copies
'
    ActivePrinter = "Xerox WC 24 PCL"
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentWithMarkup, Copies:=2, Pages:="", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub