【发布时间】:2014-04-11 20:00:01
【问题描述】:
我正在尝试自动执行在约 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 编写代码,但如果我得到一个模板或一些提示,我想我会设法做出适合我的条件的东西。
【问题讨论】:
-
ManualDuplexPrint有什么问题?你可以尝试使用Dialog object(Dialog.Show method和its parameters) -
我还添加了
word-vba标签以扩大您问题的受众范围,因为问题也与 MS Word 和 VBA 有关。 -
没有问题,但是打印机可以进行双页打印。我想尽可能避免人际互动。我需要打印多达 30 份文件,如果必须有人在那儿换页……他至少会感到疲倦。谢谢你的标签,我没想到。这些链接似乎很有用我找到了一个
DuplexPrint选项,我会试试看。 -
@KazJaw 现在我意识到这是视觉基础,我想用 python 来做,因为这是我知道的语言,但如果你能开发一点你的答案,我会把它标记为正确的。但我不确定这种方式是否能够在不将宏添加到计算机的情况下打印 30 个文档,(如果我需要创建宏)...
-
根据 Microsoft(非手动),使用 PrintOut 方法无法进行双面打印:support.microsoft.com/kb/828638 他们建议通过 Win32 API SetPrinter 更改打印机设置作为解决方法。我尝试了该解决方法,但无法与我的打印机一起使用。 YMMV。我也试过WMI。不行,WMI 只允许读取双面打印机设置。
标签: python printing ms-word com