PPTT 0.0.9

Last updated:

0 purchases

PPTT 0.0.9 Image
PPTT 0.0.9 Images
Add to Cart

Description:

PPTT 0.0.9

PPTT





PowerPoint Template for python
Installation
$ pip install PPTT
✨🍰✨

How to use it?
make master pptx
link how to make master pptx
master.pptx preview

make page!
create slide.json like this
{
"pages": [
{
"slide_pos": 1,
"contents": {
"title": {
"text": "PPTT"
},
"subtitle": {
"text": "you don't need to config design"
}
}
},
{
"slide_pos": 2,
"contents": {
"title": {
"text": "Replace Table Data"
},
"table": {
"table": {
"data_type": "key_value",
"keys": [
"Name",
"Age",
{
"name": "Hobby",
"data_key": "hobby"
},
{
"name": {
"value": "Language",
"font": {
"bold": true,
"italic": true,
"underline": true,
"color": "#00F900"
}
},
"data_key": "language"
}
],
"data": [
{"Name": "sinsky", "Age": 28, "hobby": "programming", "language": "korean"},
{"Name": "summer", "Age": 4, "hobby": "reading", "language": "korean"},
{"Name": "emmit", "Age": 30, "hobby": "lego", "language": "english"},
{"Name": "agent", "Age": 20, "hobby": "hiding", "language": "english"},
{
"Name": "python",
"Age": 38,
"hobby": "making",
"language": {
"value": "python",
"font": {
"bold": true,
"color": "#FFC107"
}
}
}
]
}
}
}
},
{
"slide_pos": 3,
"contents": {
"title": {
"text": "Replace Chart Data"
},
"chart": {
"chart": {
"data_type": "category_data",
"title": "this is new chart",
"categories": ["list", "dict", "str"],
"series": {
"series 1": [5, 13, 8]
}
}
}
}
},
{
"slide_pos": 4,
"contents": {
"body": {
"text": "support multi-line\ntext\nlike this"
},
"table": {
"table": {
"data_type": "raw",
"data": [
[null, "1Q", {"value": "2Q", "font": {"bold": true}}],
["Apple", 10, {"value": 20, "font": {"italic": true}}],
["Google", 8, {"value": 8, "font": {"underline": true}}],
["AWS", 20, {"value": 15, "font": {"color": "00F900"}}]
]
}
},
"chart": {
"chart": {
"data_type": "category_data",
"categories": ["Apple", "Google", "AWS"],
"series": {
"1Q": [10, 8, 20],
"2Q": [20, 6, 15]
}
}
}
}
}
]
}

make ppt!
pptt make_ppt master.pptx clone.pptx -i slide.json

clone.pptx preview

Python API
make stub file
pptt make_stub master.pptx -o slide_stubs.py

make ppt as code
import os

from PPTT.ppt import make_ppt
from PPTT.type import TextData, KeyValueData, TableData, KVKey, FontData, ChartCategoryData, \
CategoryData, TextStyle, RawData
from slide_stubs import \
Slide1 as CoverSlide, Slide1Content as CoverSlideContent, \
Slide2 as TableSlide, Slide2Content as TableSlideContent, \
Slide3 as ChartSlide, Slide3Content as ChartSlideContent, \
Slide4 as ComboSlide, Slide4Content as ComboSlideContent

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

if __name__ == '__main__':
slieds = []
# slide 1
cover_content = CoverSlideContent(
title=TextData(text='PPTT'),
subtitle=TextData(text="you don't need to config design")
)

slieds.append(CoverSlide(contents=cover_content))

python_font = FontData(bold=True, color="#FFC107")
language_font = FontData(bold=True, italic=True, underline=True, color="#00F900")
# slide 2
table_content = TableSlideContent(
title=TextData(text="Replace Table Data"),
table=TableData(table=KeyValueData(
keys=[
'Name',
"Age",
KVKey(name='Hobby', data_key="hobby"),
KVKey(name=TextStyle(value="Language", font=language_font), data_key="language")
],
data=[
{"Name": "sinsky", "Age": 28, "hobby": "programming", "language": "korean"},
{"Name": "summer", "Age": 4, "hobby": "reading", "language": "korean"},
{"Name": "emmit", "Age": 30, "hobby": "lego", "language": "english"},
{"Name": "agent", "Age": 20, "hobby": "hiding", "language": "english"},
{"Name": "python", "Age": 38, "hobby": "making",
"language": TextStyle(value="python", font=python_font)
}
]
)
)
)
slieds.append(TableSlide(contents=table_content))

# slide3
chart_data = CategoryData(
title="this is new chart",
categories=['list', 'dict', 'str'],
series={
"series 1": [5, 13, 8]
}
)

chart_content = ChartSlideContent(
title=TextData(text="Replace Chart Data"),
chart=ChartCategoryData(chart_data)
)
slieds.append(ChartSlide(contents=chart_content))

# slide4
table_raw_data = RawData(data=[
[None, "1Q", TextStyle("2Q", font=FontData(bold=True))],
["Apple", 10, TextStyle(20, font=FontData(italic=True))],
["Google", 8, TextStyle(8, font=FontData(underline=True))],
["AWS", 20, TextStyle(15, font=FontData(color="#00F900"))]
])

chart_category_data = CategoryData(
categories=["Apple", "Google", "AWS"],
series={
"1Q": [10, 8, 20],
"2Q": [20, 6, 15]
}
)

combo_content = ComboSlideContent()
combo_content.body = TextData("support multi-line\ntext\nlike this")
combo_content.table = TableData(table_raw_data)
combo_content.chart = ChartCategoryData(chart_category_data)

slieds.append(ComboSlide(contents=combo_content))

master_file = os.path.join(BASE_DIR, 'master.pptx')
export_file = os.path.join(BASE_DIR, 'clone.pptx')

make_ppt(master_file, export_file, pages=slieds)

test
. ./tests.sh

Change Logs


0.0.1

add cli version
cli usecase example



0.0.2

support python api



0.0.3

remove feature : I will refactoring ASAP

python api feature
template mode


add replace mode
update simple usecase example
support table data replace

support data type : raw, key_value


support chart data replace

support data type : category_data





0.0.4

New Feature

support all chart data tye : xy_data, bubble_data


Docs

add chart example





0.0.5

Bug Fix

fix table replace data dose not reset issue





0.0.6

New Feature

change text font style #10





0.0.7

New Feature

make slide stub for python api





0.0.8

New Feature

now you can give alias to stub class example





0.0.9

New Feature

support delete slide

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.