Skip to content

A python package for replacing words, images and other elements in pptx

Notifications You must be signed in to change notification settings

PaleNeutron/pptx-replace

Repository files navigation

pptx-replace

A python package for replaceing text, images and tables in pptx files

import pptx
import pptx_replace

prs = Presentation("tests/templates/test_template.pptx")
replace_text(prs, "{Main title}", "this is main report title")
slide = prs.slides[1]
replace_text(slide, "{title}", "This is a title")
replace_picture(prs.slides[0], "image.png", auto_reshape=True)

installation

pip install pptx-replace

If you want to put altair picture into pptx file, you need install some extra packages.

pip install "pptx-replace[alt]"

see: https://github.com/altair-viz/altair_saver

extra dependency

Depends on your usage, if you want to export table and keep style in jupyter, selemium and browser driver is required.

see: https://github.com/dexplo/dataframe_image/

usage

First open your pptx file.

import pptx
import pptx_replace

prs = Presentation("tests/templates/test_template.pptx")

replace text

Replace any text in your ppt

# repalce all occurances of {Main title} in pptx
replace_text(prs, "{Main title}", "this is main report title")
slide = prs.slides[1]

# replace in just one slide
replace_text(slide, "{title}", "This is a title")

replace_text(slide, "{content}", "a quick brown fox jumps over the lazy dog\n" * 5)

replace picture

Replace picture just by matplotlib figuer!

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4])
fig = plt.gcf()

replace_picture(prs.slides[1], fig, auto_reshape=False, order="l2r")

replace table

replace table by pandas dataframe

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(6, 10))
replace_table(slide, df)

About

A python package for replacing words, images and other elements in pptx

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages