2015-07-18 15 views
8

Ich habe gesucht, um eine .pptx-Datei in eine PDF-Datei über ein Python-Skript für mehrere Stunden zu konvertieren, aber nichts scheint zu funktionieren.Wie konvertiert man eine .pptx nach .pdf mit Python

Was ich versucht habe: Ich habe versucht, 1) this script die windows32.client nennt, und 2) unoconv, aber keiner von ihnen scheint für mich zu arbeiten.

Tretene Probleme: Mit Skript aus dem ersten Option wirft einen Fehler (com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024894), None)) auf, während in Python zweite Option nicht unoconv sogar nach der Installation scheinen kann mit pip zu erkennen.

Ich sah auch einige empfohlen Pandoc, aber ich kann nicht verstehen, wie man es für Python verwendet.

Versionen verwende ich: Python 2.7.9, Windows-8.1

+0

Ich frage mich, ob es nicht einfacher wäre, es in VBA zu schreiben, wie Sie den Export in PDF-Objekt verwenden könnten. Sie müssen nur das Framework zum Öffnen und Schließen der Dateien in einem Verzeichnis einrichten und dann den Exportprozess durchlaufen lassen. – AMR

+0

@AMR: Ich habe noch nie VBA verwendet, also dachte ich nicht daran, so etwas zu machen. Wenn es Ihnen nichts ausmacht, können Sie ein Beispiel dafür geben? Wenn ich die VBA-Datei habe, kann ich diese Datei von Python öffnen, wie Sie es vorgeschlagen haben. Vielen Dank für Ihren Kommentar. – Pupil

+1

Ich habe in VBA in mehreren Jahren nicht codiert. Ich habe versucht, einen alten Code durchzusehen, den ich hatte, aber ich kann die Arbeit, die ich mit dem Zugriff auf das Dateisystem gemacht habe, nicht finden. – AMR

Antwort

8

fand ich die Antwort mit Hilfe von this post und die Antwort von this question. Beachten Sie, dass comtypes nur für Windows verfügbar ist.

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() 
Verwandte Themen