Python

2015-07-18 10 views
8
kullanarak bir .pptx .pdf nasıl dönüştürülür

Bir .pptx dosyasını bir Python betiği aracılığıyla bir .pdf dosyasına birkaç saat boyunca dönüştürmeyi düşünüyordum, ancak hiçbir şey çalışmıyor gibi görünüyor. Ben denedim nePython

: denedim 1) windows32.client çağırır this script, ve 2) unoconv, ancak bunların hiçbiri benim için çalışıyor gibi görünüyor. karşılaşılan

Sorunlar: İkinci seçenekte Python bile pip kullanarak yükledikten sonra unoconv tanımak için görünmüyor olabilir oysa birinci seçeneğinden kullanarak komut dosyası, bir hata (com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024894), None)) kusar.

Ayrıca önerilen bazı Pandoc gördüm, ancak Python için nasıl kullanılacağını anlayamıyorum. Ben kullanıyorum

sürümleri: Python 2.7.9,

+0

PDF'ye dışa aktarma özelliğini kullanabildiğiniz için VBA'ya yazmanın daha kolay olmayacağını merak ediyorum. Bir dizinde dosyaları açmak ve kapatmak için bir çerçeve kurmanız ve sonra da dışa aktarma işleminden geçmesini sağlamalısınız. – AMR

+0

@AMR: Hiç VBA kullanmadım, bu yüzden böyle bir şey yapmayı düşünmedim. Eğer sakıncası yoksa, buna bir örnek verebilir misiniz? VBA dosyasına sahip olursam, o dosyayı önerdiğin gibi python'dan açabilirim. Yorumun için teşekkürler. – Pupil

+1

VBA'da birkaç yıl kodlamadım. Sahip olduğum eski kodlara bakmaya çalışıyordum, ama dosya sistemine eriştiğim işi bulamıyorum. – AMR

cevap

8

Windows 8.1 Ben this post yardımıyla ve this question gelen cevap cevabını buldu. Not comtypes yalnızca Windows için kullanılabilir.

import comtypes.client 

def PPTtoPDF(inputFileName, outputFileName, formatType = 32): 
    powerpoint = comtypes.client.CreateObject("Powerpoint.Application") 
    powerpoint.Visible = 1 

    if outputFileName[-3:] != 'pdf': 
     outputFileName = outputFileName + ".pdf" 
    deck = powerpoint.Presentations.Open(inputFileName) 
    deck.SaveAs(outputFileName, formatType) # formatType = 32 for ppt to pdf 
    deck.Close() 
    powerpoint.Quit()