我无法让Python打印word doc。我想要做的是打开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的新手。
答案 0 :(得分:2)
msword.ActiveDocument
为您提供当前有效的文档。 PrintOut
方法打印该文档:它不会将文档文件名作为参数。
来自http://msdn.microsoft.com/en-us/library/aa220363(v=office.11).aspx:
expression.PrintOut(Background, Append, Range, OutputFileName, From, To, Item,
Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX,
ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth,
PrintZoomPaperHeight)
特别是Word正在尝试将您的文件名用作布尔值Background
,可以将其设置为True
以在后台打印。
修改强>:
案件很重要,错误有点奇怪。 msword.ActiveDocument.Printout()
应打印出来。 msword.ActiveDocument.printout()
引发错误,抱怨“PrintOut”不是属性。
我认为内部发生的事情是Python试图在你不匹配属性的情况下进行补偿,但是它并没有使它适合方法。或者类似的东西。 ActiveDocument
和activedocument
可以互换,但PrintOut
和printout
不是。{/ p>
答案 1 :(得分:1)
您可能必须使用\
转义反斜杠字符\\
:
msword.Documents.Open("X:\\Backoffice\\Adam\\checklist.docx")
编辑:说明
反斜杠通常用于声明特殊字符。例如,\n
是换行符的特殊字符。如果你想要文字\
,你必须逃避它。