python32的Python打印

python32的Python打印,python,win32com,Python,Win32com,我无法让Python打印word文档。我要做的是打开Word文档,打印并关闭它。我可以打开Word和Word文档: import win32com.client msword = win32com.client.Dispatch("Word.Application") msword.Documents.Open("X:\Backoffice\Adam\checklist.docx") msword.visible= True 我试着下一步打印 msword.activedocument.

我无法让Python打印word文档。我要做的是打开Word文档,打印并关闭它。我可以打开Word和Word文档:

import win32com.client

msword = win32com.client.Dispatch("Word.Application") 
msword.Documents.Open("X:\Backoffice\Adam\checklist.docx")

msword.visible= True
我试着下一步打印

msword.activedocument.printout("X:\Backoffice\Adam\checklist.docx")
我得到“打印输出无效”的错误


有人能告诉我如何从Python打印这个文件吗。我认为这可能就像更改“打印输出”一词一样简单。谢谢,我是Python新手。

您可能需要用
\
转义反斜杠字符
\

msword.Documents.Open("X:\\Backoffice\\Adam\\checklist.docx")
编辑:解释


反斜杠通常用于声明特殊字符。例如,
\n
是新行的特殊字符。如果您想要文本
\
,必须将其转义。

msword.ActiveDocument
提供当前活动文档。
PrintOut
方法打印该文档:它不将文档文件名作为参数

发件人:

特别是Word试图将您的文件名用作布尔值
背景
,可以将其设置为
在背景中打印

编辑: 案例很重要,错误有点奇怪
msword.ActiveDocument.Printout()
应将其打印出来
msword.ActiveDocument.printout()
抛出一个错误,抱怨“printout”不是属性


我认为内部发生的情况是,当您在属性上与大小写不匹配时,Python会尝试进行补偿,但在方法上却不太合适。或者类似的东西
ActiveDocument
ActiveDocument
可以互换,但
PrintOut
PrintOut
则不能互换。

此外,您还可以使用原始字符串,其中不可能使用这样的特殊字符:
“X:\\Backoffice\\Adam”
将等于
r“X:\Backoffice\Adam”
。这对于允许复制粘贴非常有用。谢谢,我可以打开它,但打印它时我无法完成word打开和文件打开,但打印功能无法执行?好的,我知道这是一个愚蠢的问题,但我是否只需要输入范围来打印所有类似的文件。word.activedocument.printout(范围=wdprintalldocument)或者需要输入上面的每个字符?我发现发生了异常。“,(0,'Microsoft Word',“'PrintOut'不是属性。”我已编辑了我的答案:您需要将PrintOut与大小写一起使用。
expression.PrintOut(Background, Append, Range, OutputFileName, From, To, Item, 
  Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, 
  ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, 
  PrintZoomPaperHeight)