1. 程式人生 > >實用程式碼Python(六)批量PPT轉PDF

實用程式碼Python(六)批量PPT轉PDF

前言

將批量轉化後的PDF融合為一個PDF檔案,參考:實用程式碼Python(二):使用PyPDF2融合多個PDF檔案

使用PyPDF2融合多個PDF檔案

from PyPDF2 import PdfFileMerger
import os
files = os.listdir()

pdfs = []

for file in files:
	if file[-4:] == ".pdf":
		pdfs.extend([file])


merger = PdfFileMerger()

for pdf in pdfs:
    merger.append(open(pdf, 'rb'))

with open('java.pdf', 'wb') as fout:
    merger.write(fout)
	

程式碼(批量PPT轉PDF)

import comtypes.client
import os

def init_powerpoint():
	powerpoint = comtypes.client.CreateObject("Powerpoint.Application")
	powerpoint.Visible = 1
	return powerpoint
 
def ppt_to_pdf(powerpoint, inputFileName, outputFileName, formatType = 32):
	if outputFileName[-3:] != 'pdf':
		outputFileName = outputFileName + ".pdf"
		deck = powerpoint.Presentations.Open(inputFileName)
		deck.SaveAs(outputFileName, formatType) # formatType = 32 for ppt to pdf
		deck.Close()

def convert_files_in_folder(powerpoint, folder):
	files = os.listdir(folder)
	pptfiles = [f for f in files if f.endswith((".ppt", ".pptx"))]
	for pptfile in pptfiles:
		fullpath = os.path.join(cwd, pptfile)
		ppt_to_pdf(powerpoint, fullpath, fullpath)
 
if __name__ == "__main__":
	powerpoint = init_powerpoint()
	cwd = os.getcwd()
	convert_files_in_folder(powerpoint, cwd)
	powerpoint.Quit()