2015-05-27 34 views
7

Word 2013'ü otomatik olarak bir rapor olarak docx olarak kullanıyorum ve pdf formatında kaydedin. Ben fonksiyon SaveAs2() çağırdığınızdaPywin32 .docx dosyasını pdf olarak kaydedin

Fakat, senaryo pencereleri "olarak kaydet" fırlayıp bu istisna atar: Burada

(-2147352567, 'Exception occurred.', (0, u'Microsoft Word', u'Command failed', u'wdmain11.chm', 36966, -2146824090), None) 

benim kod açmak ve yeni bir dosya olarak kaydetmek için:

self.path = os.path.abspath(path) 

self.wordApp = win32.Dispatch('Word.Application') #create a word application object 
self.wordApp.Visible = False # if false hide the word application (app does't open but still usable) 

self.document = self.wordApp.Documents.Open(self.path + "/" + documentRef) # opening the template file 



absFileName = "D:\\test.pdf" 
     self.document.SaveAs2(FileName=absFileName,FileFormat=17) 

Ve kullanıyorum: pywin32 ile python2.7 (219 build)

birisi bir fikir çalışmıyor vardı mu neden?

+0

Neden rapor raporunu kullanarak oluşturmuyorsunuz? Sonra hepsi Python'da ve bu dönüştürme sorunları hakkında endişelenmenize gerek yok. –

cevap

3

bu görevi işlemek için güzel kütüphanelerin bir çift vardır: Bu ActiveState Tarif exactly this yapmanın bir örneği de

yoktur Convert Microsoft Word files to PDF with DOCXtoPDF


Eğer , Windows API (lar) kullanımıyla ilgili ısrar ederse de bu tarifi win32com aracılığıyla bunu yapmanın bir örneği yoktur Convert doc and docx files to pdf


Sen da comtypes kullanarak bu yapabilirdi (Teşekkür için .doc to pdf using python)

Örnek:

import os 
import sys 


import comtypes.client 


wdFormatPDF = 17 


def covx_to_pdf(infile, outfile): 
    """Convert a Word .docx to PDF""" 

    word = comtypes.client.CreateObject('Word.Application') 
    doc = word.Documents.Open(infile) 
    doc.SaveAs(outfile, FileFormat=wdFormatPDF) 
    doc.Close() 
    word.Quit() 
+0

Merhaba James ve cevabınız ve öneriniz için teşekkürler! Örneklerinizi comtypes ve ActiveState ile denedim ancak maalesef, kayıt sırasında yukarıdakiyle aynı sorunları yaratıyor. python-docx'e gelince, pdf [document] (https://github.com/python-openxml/python-docx/issues/113) olarak kaydetme izni yoktur ve diğer tüm kütüphane docx başlığını çekiyor gibi görünüyor. – RenShan

İlgili konular