ppt-master-survey 2.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. ppt_master_survey-2.5.0/LICENSE +21 -0
  2. ppt_master_survey-2.5.0/MANIFEST.in +12 -0
  3. ppt_master_survey-2.5.0/PKG-INFO +81 -0
  4. ppt_master_survey-2.5.0/README-upstream.md +306 -0
  5. ppt_master_survey-2.5.0/README.md +50 -0
  6. ppt_master_survey-2.5.0/README_CN.md +310 -0
  7. ppt_master_survey-2.5.0/ppt_master_survey/__init__.py +35 -0
  8. ppt_master_survey-2.5.0/ppt_master_survey/cli.py +31 -0
  9. ppt_master_survey-2.5.0/ppt_master_survey.egg-info/PKG-INFO +81 -0
  10. ppt_master_survey-2.5.0/ppt_master_survey.egg-info/SOURCES.txt +109 -0
  11. ppt_master_survey-2.5.0/ppt_master_survey.egg-info/dependency_links.txt +1 -0
  12. ppt_master_survey-2.5.0/ppt_master_survey.egg-info/entry_points.txt +2 -0
  13. ppt_master_survey-2.5.0/ppt_master_survey.egg-info/requires.txt +5 -0
  14. ppt_master_survey-2.5.0/ppt_master_survey.egg-info/top_level.txt +2 -0
  15. ppt_master_survey-2.5.0/pyproject.toml +51 -0
  16. ppt_master_survey-2.5.0/setup.cfg +4 -0
  17. ppt_master_survey-2.5.0/skills/ppt-master/scripts/README.md +116 -0
  18. ppt_master_survey-2.5.0/skills/ppt-master/scripts/analyze_images.py +384 -0
  19. ppt_master_survey-2.5.0/skills/ppt-master/scripts/batch_validate.py +318 -0
  20. ppt_master_survey-2.5.0/skills/ppt-master/scripts/check_annotations.py +126 -0
  21. ppt_master_survey-2.5.0/skills/ppt-master/scripts/config.py +642 -0
  22. ppt_master_survey-2.5.0/skills/ppt-master/scripts/docs/conversion.md +173 -0
  23. ppt_master_survey-2.5.0/skills/ppt-master/scripts/docs/image.md +165 -0
  24. ppt_master_survey-2.5.0/skills/ppt-master/scripts/docs/project.md +117 -0
  25. ppt_master_survey-2.5.0/skills/ppt-master/scripts/docs/svg-pipeline.md +189 -0
  26. ppt_master_survey-2.5.0/skills/ppt-master/scripts/docs/troubleshooting.md +75 -0
  27. ppt_master_survey-2.5.0/skills/ppt-master/scripts/docs/update_spec.md +59 -0
  28. ppt_master_survey-2.5.0/skills/ppt-master/scripts/error_helper.py +446 -0
  29. ppt_master_survey-2.5.0/skills/ppt-master/scripts/finalize_svg.py +323 -0
  30. ppt_master_survey-2.5.0/skills/ppt-master/scripts/gemini_watermark_remover.py +230 -0
  31. ppt_master_survey-2.5.0/skills/ppt-master/scripts/generate_examples_index.py +245 -0
  32. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/__init__.py +1 -0
  33. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_bfl.py +179 -0
  34. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_common.py +249 -0
  35. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_fal.py +131 -0
  36. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_gemini.py +226 -0
  37. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_ideogram.py +156 -0
  38. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_minimax.py +210 -0
  39. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_modelscope.py +168 -0
  40. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_openai.py +315 -0
  41. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_openrouter.py +186 -0
  42. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_qwen.py +201 -0
  43. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_replicate.py +173 -0
  44. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_siliconflow.py +184 -0
  45. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_stability.py +147 -0
  46. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_volcengine.py +191 -0
  47. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_backends/backend_zhipu.py +190 -0
  48. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_gen.py +465 -0
  49. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_search.py +755 -0
  50. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_sources/__init__.py +9 -0
  51. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_sources/provider_common.py +471 -0
  52. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_sources/provider_openverse.py +119 -0
  53. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_sources/provider_pexels.py +124 -0
  54. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_sources/provider_pixabay.py +129 -0
  55. ppt_master_survey-2.5.0/skills/ppt-master/scripts/image_sources/provider_wikimedia.py +196 -0
  56. ppt_master_survey-2.5.0/skills/ppt-master/scripts/notes_to_audio.py +405 -0
  57. ppt_master_survey-2.5.0/skills/ppt-master/scripts/pptx_animations.py +572 -0
  58. ppt_master_survey-2.5.0/skills/ppt-master/scripts/pptx_template_import.py +447 -0
  59. ppt_master_survey-2.5.0/skills/ppt-master/scripts/project_manager.py +778 -0
  60. ppt_master_survey-2.5.0/skills/ppt-master/scripts/project_utils.py +482 -0
  61. ppt_master_survey-2.5.0/skills/ppt-master/scripts/rotate_images.py +588 -0
  62. ppt_master_survey-2.5.0/skills/ppt-master/scripts/source_to_md/doc_to_md.py +538 -0
  63. ppt_master_survey-2.5.0/skills/ppt-master/scripts/source_to_md/excel_to_md.py +378 -0
  64. ppt_master_survey-2.5.0/skills/ppt-master/scripts/source_to_md/pdf_to_md.py +800 -0
  65. ppt_master_survey-2.5.0/skills/ppt-master/scripts/source_to_md/ppt_to_md.py +326 -0
  66. ppt_master_survey-2.5.0/skills/ppt-master/scripts/source_to_md/web_to_md.py +806 -0
  67. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_editor/__init__.py +2 -0
  68. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_editor/annotations.py +83 -0
  69. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_editor/server.py +368 -0
  70. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_finalize/__init__.py +12 -0
  71. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_finalize/align_embed_images.py +416 -0
  72. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_finalize/crop_images.py +358 -0
  73. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_finalize/embed_icons.py +358 -0
  74. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_finalize/embed_images.py +265 -0
  75. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_finalize/fix_image_aspect.py +380 -0
  76. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_finalize/flatten_tspan.py +501 -0
  77. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_finalize/svg_rect_to_path.py +337 -0
  78. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_position_calculator.py +1524 -0
  79. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_quality_checker.py +922 -0
  80. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/__init__.py +17 -0
  81. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/drawingml_context.py +118 -0
  82. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/drawingml_converter.py +345 -0
  83. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/drawingml_elements.py +1488 -0
  84. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/drawingml_paths.py +429 -0
  85. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/drawingml_styles.py +602 -0
  86. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/drawingml_utils.py +310 -0
  87. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/pptx_builder.py +603 -0
  88. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/pptx_cli.py +324 -0
  89. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/pptx_dimensions.py +148 -0
  90. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/pptx_discovery.py +101 -0
  91. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/pptx_media.py +86 -0
  92. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/pptx_narration.py +224 -0
  93. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/pptx_notes.py +157 -0
  94. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/pptx_slide_xml.py +136 -0
  95. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/tspan_flattener.py +43 -0
  96. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx/use_expander.py +127 -0
  97. ppt_master_survey-2.5.0/skills/ppt-master/scripts/svg_to_pptx.py +17 -0
  98. ppt_master_survey-2.5.0/skills/ppt-master/scripts/template_import/__init__.py +1 -0
  99. ppt_master_survey-2.5.0/skills/ppt-master/scripts/template_import/externalize_images.py +241 -0
  100. ppt_master_survey-2.5.0/skills/ppt-master/scripts/template_import/manifest.py +651 -0
  101. ppt_master_survey-2.5.0/skills/ppt-master/scripts/template_import/optimize_reference.py +331 -0
  102. ppt_master_survey-2.5.0/skills/ppt-master/scripts/total_md_split.py +367 -0
  103. ppt_master_survey-2.5.0/skills/ppt-master/scripts/tts_backends/__init__.py +2 -0
  104. ppt_master_survey-2.5.0/skills/ppt-master/scripts/tts_backends/backend_common.py +68 -0
  105. ppt_master_survey-2.5.0/skills/ppt-master/scripts/tts_backends/backend_cosyvoice.py +83 -0
  106. ppt_master_survey-2.5.0/skills/ppt-master/scripts/tts_backends/backend_edge.py +86 -0
  107. ppt_master_survey-2.5.0/skills/ppt-master/scripts/tts_backends/backend_elevenlabs.py +108 -0
  108. ppt_master_survey-2.5.0/skills/ppt-master/scripts/tts_backends/backend_minimax.py +93 -0
  109. ppt_master_survey-2.5.0/skills/ppt-master/scripts/tts_backends/backend_qwen.py +75 -0
  110. ppt_master_survey-2.5.0/skills/ppt-master/scripts/update_repo.py +142 -0
  111. ppt_master_survey-2.5.0/skills/ppt-master/scripts/update_spec.py +252 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-2026 Hugo He
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,12 @@
1
+ include LICENSE
2
+ include README.md
3
+ include README-upstream.md
4
+ include README_CN.md
5
+
6
+ recursive-include skills/ppt-master/scripts *.py *.md *.json *.txt
7
+ recursive-exclude skills/ppt-master/scripts/__pycache__ *
8
+ recursive-exclude skills/ppt-master/scripts *.pyc
9
+
10
+ global-exclude .DS_Store
11
+ global-exclude *.pyc
12
+ global-exclude __pycache__
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.4
2
+ Name: ppt-master-survey
3
+ Version: 2.5.0
4
+ Summary: PyPI distribution of hugohe3/ppt-master, packaged for the ้—ฎๅทๆ˜Ÿ (wjx) survey-report-to-ppt skill.
5
+ Author: wjx-ai-kit team
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/wjxcom/ppt-master-survey
8
+ Project-URL: Source, https://github.com/wjxcom/ppt-master-survey
9
+ Project-URL: Upstream, https://github.com/hugohe3/ppt-master
10
+ Project-URL: Issues, https://github.com/wjxcom/ppt-master-survey/issues
11
+ Keywords: pptx,svg,powerpoint,wjx,wenjuanxing,survey,report
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Office/Business :: Office Suites
21
+ Classifier: Topic :: Multimedia :: Graphics :: Presentation
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: python-pptx>=0.6.21
26
+ Requires-Dist: svglib>=1.5.0
27
+ Requires-Dist: reportlab>=4.0.0
28
+ Requires-Dist: Pillow>=9.0.0
29
+ Requires-Dist: numpy>=1.20.0
30
+ Dynamic: license-file
31
+
32
+ # ppt-master-survey
33
+
34
+ > PyPI distribution of [hugohe3/ppt-master](https://github.com/hugohe3/ppt-master), packaged for the **้—ฎๅทๆ˜Ÿ (wjx)** [`survey-report-to-ppt`](https://github.com/wjxcom/wjx-ai-kit) skill.
35
+
36
+ This package re-distributes the upstream `svg_to_pptx` engine via PyPI so end users can install it with a single `pip install` instead of cloning a 12,000-file repository. **No upstream code is modified** โ€” this fork mirrors the upstream and only adds a thin packaging layer (`pyproject.toml` + `ppt_master_survey/`).
37
+
38
+ ## Install
39
+
40
+ ```bash
41
+ pip install ppt-master-survey
42
+ ```
43
+
44
+ ## Usage
45
+
46
+ ### CLI
47
+
48
+ ```bash
49
+ ppt-master-svg2pptx <project_dir> -s svg_final -o out.pptx
50
+ ```
51
+
52
+ Same arguments as the upstream `python scripts/svg_to_pptx.py`. See [upstream documentation](https://github.com/hugohe3/ppt-master) for full options.
53
+
54
+ ### Python API
55
+
56
+ ```python
57
+ from ppt_master_survey import create_pptx_with_native_svg, main
58
+
59
+ # create_pptx_with_native_svg(...) # programmatic API
60
+ # main() # CLI entry
61
+ ```
62
+
63
+ ## Version policy
64
+
65
+ - **Major/minor** versions track upstream `hugohe3/ppt-master` releases (e.g. this `2.5.0` matches upstream `v2.5.0`).
66
+ - **Post-release** suffixes (`2.5.0.post1`, `.post2`, ...) are used for fork-only changes (packaging fixes, console-script tweaks) when upstream version has not changed. See [PEP 440](https://peps.python.org/pep-0440/#post-releases).
67
+
68
+ ## Relationship to upstream
69
+
70
+ | | Upstream `hugohe3/ppt-master` | This fork `wjxcom/ppt-master-survey` |
71
+ |---|---|---|
72
+ | Distribution | GitHub clone only | PyPI + GitHub |
73
+ | Audience | AI agents, broad PPT use cases | Survey-report generators (specifically `wjx-ai-kit`) |
74
+ | Code changes | โ€” | None โ€” only adds `pyproject.toml`, `MANIFEST.in`, `ppt_master_survey/` shim |
75
+ | License | MIT (Hugo He, 2025-2026) | MIT (preserved) |
76
+
77
+ Bug fixes and improvements that aren't survey-specific will be contributed back upstream when feasible.
78
+
79
+ ## License
80
+
81
+ MIT โ€” see [`LICENSE`](LICENSE). Copyright ยฉ 2025-2026 Hugo He (upstream); packaging additions ยฉ 2026 wjx-ai-kit team.
@@ -0,0 +1,306 @@
1
+ # PPT Master โ€” AI generates natively editable PPTX from any document
2
+
3
+ [![Version](https://img.shields.io/badge/version-v2.5.0-blue.svg)](https://github.com/hugohe3/ppt-master/releases)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![GitHub stars](https://img.shields.io/github/stars/hugohe3/ppt-master.svg)](https://github.com/hugohe3/ppt-master/stargazers)
6
+ [![AtomGit stars](https://atomgit.com/hugohe3/ppt-master/star/badge.svg)](https://atomgit.com/hugohe3/ppt-master)
7
+
8
+ English | [ไธญๆ–‡](./README_CN.md)
9
+
10
+ <p align="center">
11
+ <sub>This project is kept free and open source with the support of <a href="https://www.packyapi.com/register?aff=ppt-master">PackyCode</a> and other sponsors.</sub>
12
+ </p>
13
+
14
+ <table>
15
+ <tr>
16
+ <td width="180"><a href="https://www.packyapi.com/register?aff=ppt-master"><img src="docs/assets/sponsors/packycode.png" alt="PackyCode" width="150"></a></td>
17
+ <td>Thanks to PackyCode for sponsoring this project! PackyCode is a reliable and efficient API relay service provider, offering relay services for Claude Code, Codex, Gemini, and more. PackyCode provides special discounts for our project users: register using <a href="https://www.packyapi.com/register?aff=ppt-master">this link</a> and enter the promo code <strong>ppt-master</strong> during recharge to get 10% off.</td>
18
+ </tr>
19
+ </table>
20
+
21
+ <p align="center">
22
+ <a href="https://hugohe3.github.io/ppt-master/"><strong>Live Demo</strong></a> ยท
23
+ <a href="https://www.hehugo.com/"><strong>About Hugo He</strong></a> ยท
24
+ <a href="./examples/"><strong>Examples</strong></a> ยท
25
+ <a href="./docs/faq.md"><strong>FAQ</strong></a> ยท
26
+ <a href="mailto:heyug3@gmail.com"><strong>Contact</strong></a>
27
+ </p>
28
+
29
+ <p align="center">
30
+ <img src="docs/assets/hero-liziqi-colors.gif" alt="Demo: generating a 12-page PPT from a WeChat article with Claude Opus 4.7" width="860" />
31
+ </p>
32
+
33
+ <p align="center">
34
+ <sub>โ†‘ A <a href="https://hugohe3.github.io/ppt-master/viewer.html?project=ppt169_liziqi_plant_dye_colors">12-page natively editable deck</a>, generated end-to-end from <a href="https://mp.weixin.qq.com/s/6ZmBl0uE3sOtD8TJcHfNAw">a single WeChat article URL</a> using Claude Opus 4.7. No manual design. No image export. Every shape, text box, and chart is clickable and editable in PowerPoint.</sub>
35
+ </p>
36
+
37
+ ---
38
+
39
+ Drop in a PDF, DOCX, URL, or Markdown โ€” get back a **natively editable PowerPoint** with real shapes, real text boxes, and real charts. Not images. Click anything and edit it.
40
+
41
+ > **Animations** โ€” exported decks support **page transitions** and **per-element entrance animations** as real OOXML, not embedded video. By default, elements cascade in automatically on slide entry โ€” no clicking needed. Plays natively in PowerPoint and Keynote, no extra tooling. See [Animations & Transitions โ†’](./skills/ppt-master/references/animations.md).
42
+
43
+ > **Narration & Video** โ€” generate per-slide voice narration from the speaker notes (`edge-tts` by default, optional cloud TTS providers for high-quality narration), embed the audio back into the PPTX, and let PowerPoint export the deck as an MP4 video โ€” synced narration + transitions, no third-party tools. See [Audio Narration & Video Export โ†’](./docs/audio-narration.md).
44
+ >
45
+ > **Voice Cloning** โ€” bring your own cloned voice from ElevenLabs / MiniMax / Qwen / CosyVoice and have the entire deck narrated in *your* voice (or a presenter's, with permission). Clone once in the provider's console, then pass the `voice_id` โ€” PPT Master reads every slide's notes in that voice and embeds the result back into the PPTX. See [Use a cloned voice โ†’](./docs/audio-narration.md#use-a-cloned-voice).
46
+
47
+ > **How it works** โ€” PPT Master is a workflow (a "skill") that works inside AI IDEs like Claude Code, Cursor, VS Code + Copilot, or Codebuddy. You chat with the AI โ€” "make a deck from this PDF" โ€” and it follows the workflow to produce a real editable `.pptx` on your computer. No coding on your side; the IDE is just where the conversation happens.
48
+ >
49
+ > **What you'll do**: install Python, install an AI IDE, drop in your material.
50
+
51
+ PPT Master is different:
52
+
53
+ - **Real PowerPoint** โ€” if a file can't be opened and edited in PowerPoint, it shouldn't be called a PPT. Every element PPT Master outputs is directly clickable and editable
54
+ - **Transparent, predictable cost** โ€” the tool is free and open source; the only cost is your AI model usage. As AI tools move to usage-based billing, you pay exactly what you consume โ€” no separate PPT subscription added on top
55
+ - **Data stays local** โ€” your files shouldn't have to be uploaded to someone else's server just to make a presentation. Apart from AI model communication, the entire pipeline runs on your machine
56
+ - **No platform lock-in** โ€” your workflow shouldn't be held hostage by any single company. Works with Claude Code, Cursor, VS Code Copilot, and more; supports Claude, GPT, Gemini, Kimi, and other models
57
+
58
+ AI presentation tools roughly fall into four categories. PPT Master only does the last one:
59
+
60
+ | Category | Output | Editable element-by-element in PowerPoint? |
61
+ |---|---|:---:|
62
+ | Template fill-in | PPTX built from a fixed template | Partially โ€” limited by the template |
63
+ | Image-based | One large image per slide, packed into PPTX | โŒ each slide is a picture |
64
+ | HTML presentation | Web-based deck | โŒ not a PPTX |
65
+ | **Native editable (PPT Master)** | **Real DrawingML shapes, text boxes, charts** | โœ… click any element to edit |
66
+
67
+ **[See live examples โ†’](https://hugohe3.github.io/ppt-master/)** ยท [`examples/`](./examples/) โ€” 22 projects, 309 pages ยท **[Why PPT Master?](./docs/why-ppt-master.md)**
68
+
69
+ ## Gallery
70
+
71
+ <table>
72
+ <tr>
73
+ <td align="center"><img src="docs/assets/screenshots/preview_magazine_garden.png" alt="Magazine style โ€” Garden building guide" /><br/><sub><b>Magazine</b> โ€” warm earthy tones, photo-rich layout</sub></td>
74
+ <td align="center"><img src="docs/assets/screenshots/preview_academic_medical.png" alt="Academic style โ€” Medical image segmentation research" /><br/><sub><b>Academic</b> โ€” structured research format, data-driven</sub></td>
75
+ </tr>
76
+ <tr>
77
+ <td align="center"><img src="docs/assets/screenshots/preview_dark_art_mv.png" alt="Dark art style โ€” Music video analysis" /><br/><sub><b>Dark Art</b> โ€” cinematic dark background, gallery aesthetic</sub></td>
78
+ <td align="center"><img src="docs/assets/screenshots/preview_nature_wildlife.png" alt="Nature style โ€” Wildlife wetland documentary" /><br/><sub><b>Nature Documentary</b> โ€” immersive photography, minimal UI</sub></td>
79
+ </tr>
80
+ <tr>
81
+ <td align="center"><img src="docs/assets/screenshots/preview_tech_claude_plans.png" alt="Tech style โ€” Claude AI subscription plans" /><br/><sub><b>Tech / SaaS</b> โ€” clean white cards, pricing table layout</sub></td>
82
+ <td align="center"><img src="docs/assets/screenshots/preview_launch_xiaomi.png" alt="Product launch style โ€” Xiaomi spring release" /><br/><sub><b>Product Launch</b> โ€” high contrast, bold specs highlight</sub></td>
83
+ </tr>
84
+ </table>
85
+
86
+ ---
87
+
88
+ ## Built by Hugo He
89
+
90
+ I'm a finance professional (CPA ยท CPV ยท Consulting Engineer (Investment)) who regularly reviews and edits presentation decks. I wanted AI-generated slides to remain editable in PowerPoint, not flattened into images โ€” so I built this.
91
+
92
+ ๐ŸŒ [Personal website](https://www.hehugo.com/) ยท ๐Ÿ“ง [heyug3@gmail.com](mailto:heyug3@gmail.com) ยท ๐Ÿ™ [@hugohe3](https://github.com/hugohe3)
93
+
94
+ ---
95
+
96
+ ## Quick Start
97
+
98
+ ### 1. Prerequisites
99
+
100
+ **You only need Python.** Everything else is installed via `pip install -r requirements.txt`.
101
+
102
+ | Dependency | Required? | What it does |
103
+ |------------|:---------:|--------------|
104
+ | [Python](https://www.python.org/downloads/) 3.10+ | โœ… **Yes** | Core runtime โ€” the only thing you actually need to install |
105
+
106
+ > **TL;DR** โ€” Install Python, run `pip install -r requirements.txt`, and you're ready to generate presentations.
107
+
108
+ <details open>
109
+ <summary><strong>Windows</strong> โ€” see the dedicated step-by-step guide โš ๏ธ</summary>
110
+
111
+ Windows requires a few extra steps (PATH setup, execution policy, etc.). We wrote a **step-by-step guide** specifically for Windows users:
112
+
113
+ **๐Ÿ“– [Windows Installation Guide](./docs/windows-installation.md)** โ€” from zero to a working presentation in 10 minutes.
114
+
115
+ Quick version: download Python from [python.org](https://www.python.org/downloads/) โ†’ **check "Add to PATH"** during install โ†’ `pip install -r requirements.txt` โ†’ done.
116
+ </details>
117
+
118
+ <details>
119
+ <summary><strong>macOS / Linux</strong> โ€” install and go</summary>
120
+
121
+ ```bash
122
+ # macOS
123
+ brew install python
124
+ pip install -r requirements.txt
125
+
126
+ # Ubuntu / Debian
127
+ sudo apt install python3 python3-pip
128
+ pip install -r requirements.txt
129
+ ```
130
+ </details>
131
+
132
+ <details>
133
+ <summary><strong>Edge-case fallbacks</strong> โ€” 99% of users don't need these</summary>
134
+
135
+ Two external tools exist as fallbacks for edge cases. **Most users will never need them** โ€” install only if you hit one of the specific scenarios below.
136
+
137
+ | Fallback | Install only ifโ€ฆ |
138
+ |----------|-----------------|
139
+ | [Node.js](https://nodejs.org/) 18+ | You need to import WeChat Official Account articles **and** `curl_cffi` (part of `requirements.txt`) has no prebuilt wheel for your Python + OS + CPU combination. In normal setups `web_to_md.py` handles WeChat directly through `curl_cffi`. |
140
+ | [Pandoc](https://pandoc.org/) | You need to convert legacy formats: `.doc`, `.odt`, `.rtf`, `.tex`, `.rst`, `.org`, or `.typ`. `.docx`, `.html`, `.epub`, `.ipynb` are handled natively by Python โ€” no pandoc required. |
141
+
142
+ ```bash
143
+ # macOS (only if the above conditions apply)
144
+ brew install node
145
+ brew install pandoc
146
+
147
+ # Ubuntu / Debian
148
+ sudo apt install nodejs npm
149
+ sudo apt install pandoc
150
+ ```
151
+ </details>
152
+
153
+ ### 2. Pick an Agent
154
+
155
+ PPT Master runs in **any tool with agent capability** โ€” read/write files, execute commands, and sustain multi-turn conversation.
156
+
157
+ | Type | Examples | Notes |
158
+ |---|---|---|
159
+ | **IDE-native agent** | โ€ข VS Code architecture ([VS Code](https://code.visualstudio.com/) itself, plus forks & derivatives): [Cursor](https://cursor.sh/), Trae, Codebuddy IDE, [Windsurf](https://codeium.com/windsurf), Void, etc.<br>โ€ข Other architectures: [Zed](https://zed.dev/), etc. | Editor with a built-in agent |
160
+ | **IDE plugin / extension** | [GitHub Copilot](https://github.com/features/copilot), [Claude Code](https://claude.ai/code) (VS Code / JetBrains extension), [Cline](https://cline.bot/), [Continue](https://continue.dev/), Roo Code, etc. | Installed inside hosts like VS Code or JetBrains |
161
+ | **CLI agent** | [Claude Code](https://claude.ai/code) CLI, [Codex CLI](https://github.com/openai/codex), [Aider](https://aider.chat/), Gemini CLI, etc. | Runs in the terminal; suits scripting, remote, or server use |
162
+
163
+ > **Model recommendation**: [Claude](https://claude.ai/) Opus / Sonnet works best and is most tested. Other mainstream models (GPT, Gemini, Kimi, MiniMax, etc.) also work, but SVG absolute-coordinate layout precision varies.
164
+
165
+ **๐Ÿ”‘ Want to use Claude / GPT / Gemini but don't have access yet?** Project sponsor **[PackyCode](https://www.packyapi.com/register?aff=ppt-master)** can help โ€” whether you lack an API key, can't connect directly, have no way to subscribe, or just don't want to pay a full monthly fee for occasional use, PackyCode lets you call Claude, GPT, Gemini and more on a pay-as-you-go basis, no subscription required. Enter promo code **`ppt-master`** when topping up for 10% off.
166
+
167
+ ### 3. Set Up
168
+
169
+ **Option A โ€” Download ZIP** (no Git required): click **Code โ†’ Download ZIP** on the [GitHub page](https://github.com/hugohe3/ppt-master), then unzip.
170
+
171
+ **Option B โ€” Git clone** (requires [Git](https://git-scm.com/downloads) installed):
172
+
173
+ ```bash
174
+ git clone https://github.com/hugohe3/ppt-master.git
175
+ cd ppt-master
176
+ ```
177
+
178
+ Then install dependencies:
179
+
180
+ ```bash
181
+ pip install -r requirements.txt
182
+ ```
183
+
184
+ To update later (Option B only): `python3 skills/ppt-master/scripts/update_repo.py`
185
+
186
+ ### 4. Create
187
+
188
+ **Provide source materials (recommended):** Place your PDF, DOCX, images, or other files in the `projects/` directory, then tell the AI chat panel which files to use. The quickest way to get the path: right-click the file in your file manager or IDE sidebar โ†’ **Copy Path** (or **Copy Relative Path**) and paste it directly into the chat.
189
+
190
+ ```
191
+ You: Please create a PPT from projects/q3-report/sources/report.pdf
192
+ ```
193
+
194
+ **Paste content directly:** You can also paste text content straight into the chat window and the AI will generate a PPT from it.
195
+
196
+ ```
197
+ You: Please turn the following into a PPT: [paste your content here...]
198
+ ```
199
+
200
+ Either way, the AI will first confirm the design spec:
201
+
202
+ ```
203
+ AI: Sure. Let's confirm the design spec:
204
+ [Template] B) Free design
205
+ [Format] PPT 16:9
206
+ [Pages] 8-10 pages
207
+ ...
208
+ ```
209
+
210
+ The AI handles everything โ€” content analysis, visual design, SVG generation, and PPTX export.
211
+
212
+ > **Output:** Main native-shapes `.pptx` (directly editable) saved to `exports/<name>_<timestamp>.pptx`. The SVG snapshot `_svg.pptx` and a copy of `svg_output/` are archived to `backup/<timestamp>/` for visual reference and pptx rebuild without re-running the LLM. Requires Office 2016+.
213
+
214
+ > **AI lost context?** Ask it to read `skills/ppt-master/SKILL.md`.
215
+
216
+ > **Something went wrong?** Check the **[FAQ](./docs/faq.md)** โ€” it covers model selection, layout issues, export problems, and more. Continuously updated from real user reports.
217
+
218
+ ### 5. Image Acquisition (Optional)
219
+
220
+ Two paths for non-user images, mixable per row in the same deck:
221
+
222
+ **A) AI generation** โ€” `image_gen.py`. Copy `.env.example` to `.env`, set `IMAGE_BACKEND` plus the provider's `*_API_KEY` (`OPENAI_API_KEY`, `GEMINI_API_KEY`, etc.), and the pipeline calls it automatically. Run `python3 skills/ppt-master/scripts/image_gen.py --list-backends` for the full backend list. `gpt-image-2` is currently the best default.
223
+
224
+ **B) Web image search** โ€” `image_search.py`. **Zero-config works**, but configure `PEXELS_API_KEY` / `PIXABAY_API_KEY` (both free) for higher-quality results. Without keys, search uses Openverse / Wikimedia Commons only; this is useful as a fallback, but image quality can be uneven because many results are ordinary user uploads. With keys, the default provider chain also appends Pexels / Pixabay, which materially improves modern stock photography, people, workplace, lifestyle, and illustration coverage. The default is quality-first: CC0, Public Domain, Pexels / Pixabay no-attribution licenses, CC BY, and CC BY-SA are considered together, and Executor adds a small inline credit whenever the selected image requires attribution. Use `--strict-no-attribution` only when a slide cannot tolerate any credit line. For high-impact covers, product shots, portraits, and branded scenes, prefer this order: user-provided high-resolution assets / AI generation > web search with Pexels / Pixabay keys > zero-config web search.
225
+
226
+ > Full reference: [`image-generator.md`](./skills/ppt-master/references/image-generator.md) (AI) ยท [`image-searcher.md`](./skills/ppt-master/references/image-searcher.md) (web).
227
+
228
+ ---
229
+
230
+ ## Documentation
231
+
232
+ | | Document | Description |
233
+ |---|----------|-------------|
234
+ | ๐Ÿ†š | [Why PPT Master](./docs/why-ppt-master.md) | How it compares to Gamma, Copilot, and other AI tools |
235
+ | ๐ŸชŸ | [Windows Installation](./docs/windows-installation.md) | Step-by-step setup guide for Windows users |
236
+ | ๐Ÿ“– | [SKILL.md](./skills/ppt-master/SKILL.md) | Core workflow and rules |
237
+ | ๐ŸŽจ | [Create a Custom Template](./skills/ppt-master/workflows/create-template.md) | Standalone workflow for building your own brand or industry template |
238
+ | ๐Ÿ“ | [Canvas Formats](./skills/ppt-master/references/canvas-formats.md) | PPT 16:9, Xiaohongshu, WeChat, and 10+ formats |
239
+ | ๐ŸŽฌ | [Animations & Transitions](./skills/ppt-master/references/animations.md) | Page transitions and per-element entrance animations |
240
+ | ๐ŸŽ™๏ธ | [Audio Narration & Video Export](./docs/audio-narration.md) | TTS narration in 90+ locales, embed audio, export as MP4 |
241
+ | ๐Ÿ› ๏ธ | [Scripts & Tools](./skills/ppt-master/scripts/README.md) | All scripts and commands |
242
+ | ๐Ÿ’ผ | [Examples](./examples/README.md) | 22 projects, 309 pages |
243
+ | ๐Ÿ—๏ธ | [Technical Design](./docs/technical-design.md) | Architecture, design philosophy, why SVG |
244
+ | โ“ | [FAQ](./docs/faq.md) | Model selection, cost, layout troubleshooting, custom templates |
245
+
246
+ ---
247
+
248
+ ## Contributing
249
+
250
+ See [CONTRIBUTING.md](./CONTRIBUTING.md) for how to get involved.
251
+
252
+ ## License
253
+
254
+ [MIT](LICENSE)
255
+
256
+ ## Acknowledgments
257
+
258
+ [SVG Repo](https://www.svgrepo.com/) ยท [Tabler Icons](https://github.com/tabler/tabler-icons) ยท [Simple Icons](https://github.com/simple-icons/simple-icons) ยท [Phosphor Icons](https://github.com/phosphor-icons/core) ยท [Robin Williams](https://en.wikipedia.org/wiki/Robin_Williams_(author)) (CRAP principles)
259
+
260
+ ## Contact & Collaboration
261
+
262
+ Looking to collaborate, integrate PPT Master into your workflow, or just have questions?
263
+
264
+ - ๐Ÿ’ฌ **Questions & sharing** โ€” [GitHub Discussions](https://github.com/hugohe3/ppt-master/discussions)
265
+ - ๐Ÿ› **Bug reports & feature requests** โ€” [GitHub Issues](https://github.com/hugohe3/ppt-master/issues)
266
+ - ๐ŸŒ **Learn more about the author** โ€” [www.hehugo.com](https://www.hehugo.com/)
267
+
268
+ ---
269
+
270
+ ## Star History
271
+
272
+ <a href="https://star-history.com/#hugohe3/ppt-master&Date">
273
+ <picture>
274
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=hugohe3/ppt-master&type=Date&theme=dark" />
275
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=hugohe3/ppt-master&type=Date" />
276
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=hugohe3/ppt-master&type=Date" />
277
+ </picture>
278
+ </a>
279
+
280
+ ---
281
+
282
+ ## Sponsors & Support
283
+
284
+ PPT Master is currently built and maintained primarily by me. Every new template, bug fix, and documentation update takes ongoing resources โ€” currently shared by the sponsors and individual supporters below.
285
+
286
+ **Corporate sponsors**
287
+
288
+ <a href="https://www.packyapi.com/register?aff=ppt-master"><img src="docs/assets/sponsors/packycode.png" alt="PackyCode" height="40" /></a>
289
+ &nbsp;
290
+ <a href="https://m.do.co/c/547f129aabe1"><img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg" alt="Powered by DigitalOcean" height="40" /></a>
291
+
292
+ **Individual support**
293
+
294
+ If PPT Master has been helpful to you, individual support of any amount helps keep the project moving and free.
295
+
296
+ <a href="https://paypal.me/hugohe3"><img src="https://img.shields.io/badge/PayPal-Sponsor-00457C?style=for-the-badge&logo=paypal&logoColor=white" alt="Sponsor via PayPal" /></a>
297
+
298
+ <img src="docs/assets/alipay-qr.jpg" alt="Alipay QR Code" width="220" />
299
+
300
+ ---
301
+
302
+ Made with โค๏ธ by [Hugo He](https://www.hehugo.com/) โ€” if this project helps you, please give it a โญ and consider [sponsoring](#sponsors--support).
303
+
304
+ <sub>Official distribution: <a href="https://github.com/hugohe3/ppt-master">GitHub</a> (primary) ยท <a href="https://atomgit.com/hugohe3/ppt-master">AtomGit</a> (mirror). Redistributions on other platforms are unofficial. MIT licensed โ€” attribution required.</sub>
305
+
306
+ [โฌ† Back to Top](#ppt-master--ai-generates-natively-editable-pptx-from-any-document)
@@ -0,0 +1,50 @@
1
+ # ppt-master-survey
2
+
3
+ > PyPI distribution of [hugohe3/ppt-master](https://github.com/hugohe3/ppt-master), packaged for the **้—ฎๅทๆ˜Ÿ (wjx)** [`survey-report-to-ppt`](https://github.com/wjxcom/wjx-ai-kit) skill.
4
+
5
+ This package re-distributes the upstream `svg_to_pptx` engine via PyPI so end users can install it with a single `pip install` instead of cloning a 12,000-file repository. **No upstream code is modified** โ€” this fork mirrors the upstream and only adds a thin packaging layer (`pyproject.toml` + `ppt_master_survey/`).
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ pip install ppt-master-survey
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ### CLI
16
+
17
+ ```bash
18
+ ppt-master-svg2pptx <project_dir> -s svg_final -o out.pptx
19
+ ```
20
+
21
+ Same arguments as the upstream `python scripts/svg_to_pptx.py`. See [upstream documentation](https://github.com/hugohe3/ppt-master) for full options.
22
+
23
+ ### Python API
24
+
25
+ ```python
26
+ from ppt_master_survey import create_pptx_with_native_svg, main
27
+
28
+ # create_pptx_with_native_svg(...) # programmatic API
29
+ # main() # CLI entry
30
+ ```
31
+
32
+ ## Version policy
33
+
34
+ - **Major/minor** versions track upstream `hugohe3/ppt-master` releases (e.g. this `2.5.0` matches upstream `v2.5.0`).
35
+ - **Post-release** suffixes (`2.5.0.post1`, `.post2`, ...) are used for fork-only changes (packaging fixes, console-script tweaks) when upstream version has not changed. See [PEP 440](https://peps.python.org/pep-0440/#post-releases).
36
+
37
+ ## Relationship to upstream
38
+
39
+ | | Upstream `hugohe3/ppt-master` | This fork `wjxcom/ppt-master-survey` |
40
+ |---|---|---|
41
+ | Distribution | GitHub clone only | PyPI + GitHub |
42
+ | Audience | AI agents, broad PPT use cases | Survey-report generators (specifically `wjx-ai-kit`) |
43
+ | Code changes | โ€” | None โ€” only adds `pyproject.toml`, `MANIFEST.in`, `ppt_master_survey/` shim |
44
+ | License | MIT (Hugo He, 2025-2026) | MIT (preserved) |
45
+
46
+ Bug fixes and improvements that aren't survey-specific will be contributed back upstream when feasible.
47
+
48
+ ## License
49
+
50
+ MIT โ€” see [`LICENSE`](LICENSE). Copyright ยฉ 2025-2026 Hugo He (upstream); packaging additions ยฉ 2026 wjx-ai-kit team.