2015-07-18 34 views
8

Szukałem przekonwertować plik. Pptx do pliku .pdf przez skrypt Python na kilka godzin, ale nic nie wydaje się działać.Jak przekonwertować .pptx do .pdf przy użyciu Python

Co próbowałem: Próbowałem 1) this script który nazywa windows32.client i 2) unoconv, ale żaden z nich nie wydają się być pracy dla mnie.

Problemy napotykane: Korzystanie skrypt z pierwszej opcji rzuca się błąd (com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024894), None)), natomiast w drugiej opcji Python nie może wydawać się rozpoznać unoconv nawet po zainstalowaniu go za pomocą pip.

Zobaczyłem też kilka zalecanych Pandoc, ale nie mogę zrozumieć, jak używać go w Pythonie.

Wersje używam: Python 2.7.9, Windows 8.1

+0

Zastanawiam się, czy nie byłoby łatwiej napisać go w VBA, jak można użyć obiektu eksportu do pliku PDF. Po prostu trzeba skonfigurować framework do otwierania i zamykania plików w katalogu, a następnie uruchomić proces eksportu. – AMR

+0

@AMR: Nigdy nie używałem VBA, więc nie myślałem o zrobieniu czegoś takiego. Jeśli nie masz nic przeciwko, możesz podać przykład tego? Jeśli mam plik VBA, to mogę otworzyć ten plik z pythonu, tak jak sugerowałeś. Dzięki za komentarz. – Pupil

+1

Nie kodowałem w VBA od kilku lat. Próbowałem przejrzeć stary kod, który miałem, ale nie mogę znaleźć pracy, do której uzyskałem dostęp do systemu plików. – AMR

Odpowiedz

8

Znalazłem odpowiedź z pomocą this post i odpowiedzi z this question. Zauważ, że comtypes jest dostępna tylko dla systemu Windows.

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() 
Powiązane problemy