Python从python32打印

时间:2011-11-03 10:31:47

标签: python win32com

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

2 个答案:

答案 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试图在你不匹配属性的情况下进行补偿,但是它并没有使它适合方法。或者类似的东西。 ActiveDocumentactivedocument可以互换,但PrintOutprintout不是。{/ p>

答案 1 :(得分:1)

您可能必须使用\转义反斜杠字符\\

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

编辑:说明

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