1

我无法让 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 新手。

4

2 回答 2

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

于 2011-11-03T11:31:40.310 回答
1

您可能必须使用以下命令转义反斜杠\字符\\

msword.Documents.Open("X:\\Backoffice\\Adam\\checklist.docx")

编辑:解释

反斜杠通常用于声明特殊字符。例如\n是换行符的特殊字符。如果你想要一个文字\,你必须逃避它。

于 2011-11-03T10:49:59.753 回答