1

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が初めてです。

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 が補正しようとすることだと思いますが、メソッドの場合は完全に一致しません。とにかくそのようなもの。ActiveDocumentactivedocumentは交換可能ですがPrintOut、 とは交換printoutできません。

于 2011-11-03T11:31:40.310 に答える
1

\おそらく、バックスラッシュ文字を\\次のようにエスケープする必要があります。

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

編集:説明

バックスラッシュは通常、特殊文字を宣言するために使用されます。たとえば\n、改行の特殊文字です。リテラルが必要な\場合は、エスケープする必要があります。

于 2011-11-03T10:49:59.753 に答える