2017-02-23 20 views
0

Python 2.7.xで.docファイルを.pdfに変換するソリューションを探していますが、それほど単純ではありません。 docファイルを.docxとpdfに比べてPythonでコンパイルします。コードはここ.docファイルをループして.pdf(Python)に変換する

_ctypes.COMError: (-2146823114, None, (u"Sorry, we couldn't find your file.  Was it moved, renamed, or deleted?\r (C:\\windows\\system32\\PrivateCourse_AR.doc)", u'Microsoft Word', u'wdmain11.chm', 24654, None)) 

されています:これまでのところ最も適しており、作業溶液は、私は指定されたディレクトリ内の.docファイルをループにそれを拡張しようとすると、私はエラーが発生したものの、私thisためのようです

import os 
import comtypes.client 

os.chdir('C:\Users\Domi\PycharmProjects\STStransl-auto\doc') 
path = os.getcwd() 
print path 

input = os.listdir(path) 
print input 
print len(input) 

wdFormatPDF = 17 #pdf 

i=0 

output = '.\doc2txt_{}'.format(i) 

word = comtypes.client.CreateObject('Word.Application') 
for file in input: 
    if file.endswith('.doc'): 
     print file 
     doc = word.Documents.Open(file) 
     doc.SaveAs(output, FileFormat=wdFormatPDF) 
     i += 1 
     doc.Close() 
     word.Quit() 

Pythonでコードや効率的に.docファイルを処理する方法についてのアドバイスは歓迎され、非常に感謝しています。私は、.docxと.pdfファイル(マージ、テキストの抽出、テキストの複数のファイルへの分割)を扱うためのオートメーションスクリプトに取り組んでいます。それらには問題はありません。残念ですが、.docファイルもたくさんあります。どうもありがとう。あなたが実際にここで明らかにWordのサブプロセスが、MSWordのと、より複雑な通信プロトコルを呼び出して、していないので、だエラーは、ファイル名に言及したが、システムパスに

C:\\windows\\system32\\PrivateCourse_AR.doc

こと

答えて

0

ノートMSWordは現在の別のディレクトリを使用して実行しています。

word.Documents.Open(os.path.abspath(file)) 

パスは絶対にするために:だからやる、それを修正するには、その場合には失敗した(と幸いMSWordのは、非見つかったファイルの絶対パスを提供する礼儀を持っている)

を相対ファイルパスを渡します(正しいディレクトリにある)比較的にごスクリプト

それはおそらく同じ問題だ/ save部分の修正:

doc.SaveAs(os.path.abspath(output), FileFormat=wdFormatPDF) 
別に

:いつもあなたが(r"C:\temp"を書き、タブ文字の代わりに、\tC:\tempのようなパスで驚きを持っていることがあり、Windowsのファイルパスのための生のプレフィックスを使用し

+0

は、それがエラーを解決し、あなたのジャン=フランソワありがとうございました。 – Dominika

関連する問題