Печать Python из python32 - PullRequest
       13

Печать Python из python32

1 голос
/ 03 ноября 2011

Я не могу заставить Python напечатать слово 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 ]

2 голосов
/ 03 ноября 2011

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 не являются.

1 голос
/ 03 ноября 2011

Вы, вероятно, должны экранировать символ обратной косой черты \ с помощью \\:

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

РЕДАКТИРОВАТЬ: Объяснение

Обратная косая черта обычно используется для объявленияспециальные символы.Например, \n - это специальный символ для новой строки.Если вам нужен литерал \, вы должны его избежать.

...