আপনি PowerPoint-এর GUI (Graphical User Interface) দিয়ে themes customize
| Fact | Details |
|---|---|
| .pptx = Renamed .zip | একটি .pptx file আসলে একটি ZIP compressed archive — extension .pptx থেকে .zip-এ rename করলে WinRAR/7-Zip দিয়ে open করা যায়! |
| .potx = Renamed .zip | Template files-ও same ZIP structure — .potx → .zip rename → extract → edit → repack → .potx rename |
| .thmx = Renamed .zip | Theme files-ও ZIP archive — contains theme XML + optional media |
| ভিতরে কী আছে? | XML files (content, styles, relationships) + Media files (images, audio, video) + Metadata (properties, settings) |
| Format Name | OOXML — Office Open XML — Microsoft Office 2007+ standard; ISO/IEC 29500 certified |
| Step | Action | Result |
|---|---|---|
| 1 | যেকোনো .pptx file copy করুন | Original file safe থাকবে |
| 2 | Copy file-এর extension .pptx → .zip rename করুন | Windows warning আসতে পারে — "Yes" click করুন |
| 3 | .zip file double-click বা 7-Zip দিয়ে open করুন | 🎯 Folders ও XML files দেখবেন! — এটাই PowerPoint-এর "inside"! |
| Path | File/Folder | Purpose | Theme-Related? |
|---|---|---|---|
/ |
[Content_Types].xml | File types registry — কোন file কোন type | 🔴 No |
/_rels/ |
.rels | Root relationships — files কীভাবে connected | 🔴 No |
/docProps/ |
app.xml, core.xml, thumbnail.jpeg | Document properties — author, title, dates, thumbnail | 🔴 No |
/ppt/ |
presentation.xml | 🎯 Main presentation file — slide references, sizes, settings | 🟡 Partial |
/ppt/theme/ |
🎯 theme1.xml | 🎯 THEME FILE — colors, fonts, effects! — this is our primary target! | 🔴 YES — PRIMARY! |
/ppt/slideMasters/ |
slideMaster1.xml, ... | Slide Master definitions — layouts, backgrounds, default styles | 🟡 Related |
/ppt/slideLayouts/ |
slideLayout1.xml, ... | Individual layout definitions — placeholder positions, formatting | 🟡 Related |
/ppt/slides/ |
slide1.xml, slide2.xml, ... | Individual slide content — text, shapes, images per slide | 🟢 Uses theme |
/ppt/media/ |
image1.png, image2.jpg, ... | Embedded media files — images, audio, video | 🔴 No |
/ppt/_rels/ |
presentation.xml.rels | Presentation relationships — links slides to masters to themes | 🟡 Theme reference |
/ppt/theme/theme1.xml — Colors, Fonts, Effects (🎯 MAIN TARGET)/ppt/slideMasters/slideMaster1.xml — Master-level elements/ppt/slideLayouts/slideLayout*.xml — Layout-specific elements/ppt/presentation.xml — Slide size, default settings...colors...
...fonts...
...fill styles, line styles, effect styles, bg fill styles...
| Section | XML Element | Controls | PowerPoint UI Equivalent |
|---|---|---|---|
| 🎨 Color Scheme | |
১২ theme color slots — Dark1, Light1, Dark2, Light2, Accent1-6, Hyperlink, FollowedHyperlink | Design → Variants → Colors → Customize Colors |
| 🔤 Font Scheme | |
Major (Heading) ও Minor (Body) fonts + language-specific fallbacks (Latin, East Asian, Complex Script) | Design → Variants → Fonts → Customize Fonts |
| ✨ Format Scheme | |
Fill styles, line styles, effect styles, background fills — shape/effect presets | Design → Variants → Effects (partially); Shape Styles |
| XML Tag | Slot Name | Role | Brand Value | Hex |
|---|---|---|---|---|
|
Dark 1 | Primary text color; also used as bg in inverted | Dark Charcoal | #333333 |
|
Light 1 | Primary background; also text on dark bg | White | #FFFFFF |
|
Dark 2 | Secondary text; headers; strong brand presence | Brand Dark Green | #3A5A3C |
|
Light 2 | Secondary background; subtle tint areas | Brand Light Tint | #F0F7F1 |
|
Accent 1 | Primary accent — charts, shapes, highlights | Sage Green | #638766 |
|
Accent 2 | Secondary accent | Soft Sage | #98B6A3 |
|
Accent 3 | Tertiary accent | Light Green | #BDD6AE |
|
Accent 4 | Contrasting accent — warmth, emphasis | Warm Gold | #D4A574 |
|
Accent 5 | Additional accent | Dark Gold | #8B6F4E |
|
Accent 6 | Additional accent | Forest Green | #4A7C50 |
|
Hyperlink | Unvisited hyperlink color | Sage Green | #638766 |
|
Followed Hyperlink | Visited hyperlink color | Soft Sage | #98B6A3 |
= sRGB hex color WITHOUT # prefix = System color reference (Windows text color)
| XML Element | Role | UI Equivalent | XML-Only Feature |
|---|---|---|---|
|
Heading font | Customize Fonts → Heading font | — |
|
Body font | Customize Fonts → Body font | — |
|
Latin script font (English, European) | Main font selection | — |
|
East Asian fallback (Chinese, Japanese, Korean) | Partially accessible | — |
|
Complex Script fallback (Arabic, Hebrew, Thai) | Partially accessible | — |
|
🎯 Language-specific font overrides | ❌ NOT accessible in UI! | 🎯 XML-ONLY! Bangla font = "Beng" script override! |
panose="..." |
Font classification code for substitution | ❌ Not in UI | 🎯 XML-ONLY! Controls font substitution behavior |
| Sub-Element | XML Tag | Controls | Contains |
|---|---|---|---|
| Fill Style List | |
৩ fill presets — Subtle, Moderate, Intense fills for shapes | Solid fills, gradient fills, pattern fills |
| Line Style List | |
৩ line presets — Subtle, Moderate, Intense outlines | Line width, dash style, cap type, join type |
| Effect Style List | |
৩ effect presets — Subtle, Moderate, Intense effects | Shadows, reflections, glow, soft edges, 3D |
| Background Fill Style List | |
৩ background fill presets | Slide background fill options |
...stronger gradient...
| Attribute | XML Tag | Range | Effect |
|---|---|---|---|
| Tint | |
0-100000 (0-100%) | Color-কে white-এর দিকে lighten করে (50000 = 50% tint) |
| Shade | |
0-100000 | Color-কে black-এর দিকে darken করে |
| Saturation Modulation | |
0-infinity | Saturation multiply — 150000 = 150% saturation |
| Luminance Modulation | |
0-infinity | Luminance multiply — 80000 = 80% brightness |
| Luminance Offset | |
-100000 to 100000 | Luminance add/subtract — absolute brightness shift |
| Alpha | |
0-100000 | Transparency — 50000 = 50% transparent |
| Hue Modulation | |
0-infinity | Hue shift — changes the actual color hue |
| Tool | Purpose | Free? | Download | Rating |
|---|---|---|---|---|
| 🎯 7-Zip | ZIP extraction ও repacking — .pptx ↔ folder | ✅ Free | 7-zip.org | ⭐⭐⭐⭐⭐ |
| 🎯 VS Code (Visual Studio Code) | 🎯 Best XML editor — syntax highlighting, auto-complete, formatting | ✅ Free | code.visualstudio.com | ⭐⭐⭐⭐⭐ |
| 🎯 OOXML Tools (VS Code Extension) | VS Code extension — directly open .pptx as folder in editor! | ✅ Free | VS Code Extensions marketplace | ⭐⭐⭐⭐⭐ |
| Notepad++ | Lightweight XML editor — syntax highlighting | ✅ Free | notepad-plus-plus.org | ⭐⭐⭐⭐ |
| Open XML SDK Productivity Tool | Microsoft official tool — visualize OOXML structure | ✅ Free | Microsoft GitHub | ⭐⭐⭐⭐ |
| Python (python-pptx library) | Programmatic PowerPoint manipulation — batch operations | ✅ Free | pip install python-pptx | ⭐⭐⭐⭐⭐ (batch) |
| Step | Action |
|---|---|
| 1 | VS Code install করুন (code.visualstudio.com) |
| 2 | Extensions install: "XML" by Red Hat — XML validation + formatting |
| 3 | Extensions install: "OOXML Tools" — .pptx direct editing support |
| 4 | Extensions install: "Prettier" — code formatting (optional) |
| Step | Action | Details | ⚠️ Caution |
|---|---|---|---|
| 0 | ⚠️ BACKUP FIRST! | Original .pptx file-এর copy তৈরি করুন — "MyPresentation_BACKUP.pptx" | 🔴 CRITICAL — backup ছাড়া কখনো edit করবেন না! |
| 1 | Extension Rename | "MyPresentation.pptx" → "MyPresentation.zip" | Windows: File Explorer → View → ☑️ "File name extensions" enable |
| 2 | Extract ZIP | Right-click .zip → "Extract All" বা 7-Zip → "Extract to folder" | Folder structure intact রাখুন — কোনো folder rename/delete করবেন না |
| 3 | Navigate to Target XML | Extracted folder → ppt → theme → theme1.xml | — |
| 4 | Open in VS Code | Right-click theme1.xml → "Open with VS Code" | Notepad দিয়ে open করলে formatting ভেঙে যেতে পারে |
| 5 | Format XML (Readable) | VS Code → Shift+Alt+F (Format Document) → readable indentation | — |
| 6 | 🎯 Edit XML | Desired changes করুন — colors, fonts, effects modify | 🔴 শুধু values change করুন — tags/structure change করবেন না! |
| 7 | Save XML | Ctrl+S — save edited XML file | Encoding: UTF-8 maintain করুন |
| 8 | Repack to ZIP | Extracted folder-এর সব content select → Right-click → 7-Zip → "Add to archive" → Format: zip | 🔴 Root folder নয়, content select করুন! [Content_Types].xml root-এ থাকতে হবে |
| 9 | Rename .zip → .pptx | "MyPresentation.zip" → "MyPresentation.pptx" | — |
| 10 | Test in PowerPoint | PowerPoint-এ open করুন — changes verify করুন | "Repair" prompt আসলে = XML error; backup থেকে retry |
| Step | XML Location | Change |
|---|---|---|
| 1 | |
name attribute change → name="Sage Green Brand" |
| 2 | |
val change → val="333333" |
| 3 | |
val change → val="638766" |
| 4 | Repeat for all 12 color slots | সব ১২ slots-এ brand hex values enter |
val="4472C4" (old color) → Replace: val="638766" (new color)| Step | XML Element | Change |
|---|---|---|
| 1 | |
typeface change → typeface="Poppins" |
| 2 | |
typeface change → typeface="Poppins" |
| 3 | |
🎯 typeface change → typeface="Nirmala UI" |
| 4 | Add if missing inside |
|
| 5 | Same inside |
|
| Script Code | Language/Script | Recommended Font |
|---|---|---|
| Beng | Bangla (Bengali) | Nirmala UI, Vrinda, SolaimanLipi |
| Deva | Hindi (Devanagari) | Nirmala UI, Mangal |
| Taml | Tamil | Nirmala UI, Latha |
| Telu | Telugu | Nirmala UI, Gautami |
| Knda | Kannada | Nirmala UI, Tunga |
| Mlym | Malayalam | Nirmala UI, Kartika |
| Guru | Punjabi (Gurmukhi) | Nirmala UI, Raavi |
| Arab | Arabic | Traditional Arabic, Simplified Arabic |
| Jpan | Japanese | Yu Gothic, Meiryo |
| Hans | Simplified Chinese | DengXian, SimSun |
| Hang | Korean | Malgun Gothic |
| Thai | Thai | Angsana New, Cordia New |
| Unit | EMU Value | Common Uses |
|---|---|---|
| 1 inch | 914400 EMUs | Slide dimensions, element positions |
| 1 cm | 360000 EMUs | Metric measurements |
| 1 point (pt) | 12700 EMUs | Font sizes, line widths, shadow distances |
| 1 degree (angle) | 60000 units | Gradient angles, shadow direction (90° = 5400000) |
| 1% (percentage) | 1000 units | Tint/shade (50% = 50000), alpha (63% = 63000) |
| Path | File | Purpose |
|---|---|---|
/ |
[Content_Types].xml | File types registry |
/_rels/ |
.rels | Root relationships |
/theme/ |
🎯 theme1.xml | Theme definition — colors, fonts, effects |
/theme/_rels/ |
theme1.xml.rels | Theme relationships (if theme uses images) |
| Step | Action |
|---|---|
| 1 | একটি existing .thmx file copy করুন (Design → Save Current Theme → save → copy) |
| 2 | .thmx → .zip rename → extract |
| 3 | theme/theme1.xml open → colors, fonts, effects edit |
| 4 | Save → repack to .zip → rename .zip → .thmx |
| 5 | PowerPoint → Design → Themes → Browse → apply custom .thmx |
# Install: pip install python-pptx lxml
import zipfile, os, shutil
from lxml import etree
def update_theme_color(pptx_path, old_hex, new_hex, output_path):
"""Replace a color in theme1.xml across a .pptx file"""
# 1. Extract
temp_dir = "temp_pptx"
with zipfile.ZipFile(pptx_path, 'r') as z:
z.extractall(temp_dir)
# 2. Edit theme1.xml
theme_path = os.path.join(temp_dir, "ppt", "theme", "theme1.xml")
with open(theme_path, 'r', encoding='utf-8') as f:
content = f.read()
content = content.replace(
f'val="{old_hex}"',
f'val="{new_hex}"'
)
with open(theme_path, 'w', encoding='utf-8') as f:
f.write(content)
# 3. Repack
with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as z:
for root, dirs, files in os.walk(temp_dir):
for file in files:
file_path = os.path.join(root, file)
arc_name = os.path.relpath(file_path, temp_dir)
z.write(file_path, arc_name)
shutil.rmtree(temp_dir)
print(f"✅ Updated: {output_path}")
# Usage: Replace old blue with brand sage green
update_theme_color("presentation.pptx", "4472C4", "638766", "branded.pptx")
| # | Error Type | Symptom | Cause | Fix |
|---|---|---|---|---|
| 1 | "PowerPoint found a problem" | Repair dialog on open | Invalid XML — unclosed tag, wrong attribute, bad structure | Backup থেকে restore; XML validator-এ check; error fix |
| 2 | "File is corrupt" | Can't open at all | ZIP structure wrong — extra folder layer; missing files | Repack correctly — [Content_Types].xml must be at ZIP root |
| 3 | Colors not changing | File opens but old colors remain | Edited wrong file; hardcoded colors on slides override theme | Verify theme1.xml edited; check slide-level overrides |
| 4 | Fonts not applying | File opens but wrong fonts | Font name misspelled in XML; font not installed | Verify exact font name; install font on machine |
| 5 | Encoding error | Special characters broken | File saved in wrong encoding (not UTF-8) | Save as UTF-8 with BOM; verify XML declaration |
| ✔️ | Check |
|---|---|
| ☐ | সব opening tags-এর matching closing tag আছে? |
| ☐ | Attribute values double quotes-এ আছে? (val="638766") |
| ☐ | Hex color values 6 characters (# ছাড়া)? (638766 ✅, #638766 ❌) |
| ☐ | XML declaration first line-এ আছে? () |
| ☐ | Encoding UTF-8? |
| ☐ | No extra/missing angle brackets? (< >) |
| ☐ | ZIP repack-এ [Content_Types].xml root-এ আছে? |
| # | Safety Rule | Details | Priority |
|---|---|---|---|
| 1 | 🔴 ALWAYS BACKUP FIRST | Original file copy করুন editing শুরু করার আগে — "_BACKUP" suffix | 🔴 MANDATORY |
| 2 | Never edit original | Copy-তে কাজ করুন; original untouched রাখুন | 🔴 MANDATORY |
| 3 | Small changes, frequent tests | একবারে ১-২ change → test → আরো change → test — incremental approach | 🟡 Important |
| 4 | Only change values, not structure | Hex values, font names, numeric values change করুন — tags/elements add/remove করবেন না (unless experienced) | 🟡 Important |
| 5 | Use proper XML editor | VS Code / Notepad++ ব্যবহার করুন — Notepad/WordPad ব্যবহার করবেন না! | 🟡 Important |
| 6 | Validate before repacking | VS Code-এ XML validation enable → errors দেখাবে before save | 🟢 Recommended |
| 7 | Version your edits | "theme_v1.xml", "theme_v2.xml" — versions রাখুন rollback-এর জন্য | 🟢 Recommended |
| Rule # | Rule | Details |
|---|---|---|
| XE1 | BACKUP ALWAYS: Original file backup BEFORE any editing | Corrupted file = lost work; backup = safety net |
| XE2 | theme1.xml = Primary Target: ৯০% theme customization এই single file-এ | /ppt/theme/theme1.xml = colors, fonts, effects |
| XE3 | Hex Without #: XML-এ color values # ছাড়া — val="638766" (not "#638766") | Wrong format = parse error |
| XE4 | EMU Units: 1 inch = 914400; 1 pt = 12700; 1° = 60000 | PowerPoint's internal measurement system |
| XE5 | Percentage Units: 1% = 1000 units — 50% = 50000; 100% = 100000 | Tint, shade, alpha, saturation modulation |
| XE6 | UTF-8 Encoding: XML files MUST be UTF-8 encoded | Wrong encoding = character errors, parse failures |
| XE7 | ZIP Root Correct: [Content_Types].xml must be at ZIP root level | Extra folder layer = "file corrupt" error |
| XE8 | Incremental Changes: Small changes → test → more changes → test | Easier to identify which change caused problems |
| XE9 | Proper Editor: VS Code বা Notepad++ — NOT Notepad/WordPad | Proper editors preserve encoding, show syntax, validate XML |
| XE10 | Font Names Exact: XML-এ font name exactly match installed font name | Misspelled name = font not found = substitution |
| XE11 | Script Codes: Language fallback fonts use ISO 15924 script codes (Beng, Deva, etc.) | Wrong code = fallback not applied |
| XE12 | Test in PowerPoint: Every edit session-এর পর PowerPoint-এ open করে verify করুন | XML looks correct ≠ PowerPoint renders correctly — always test! |
| # | Best Practice | কেন? |
|---|---|---|
| 1 | সবসময় backup তৈরি করুন editing-এর আগে | Corrupted file recovery; rollback option; safety |
| 2 | VS Code + XML extension ব্যবহার করুন | Syntax highlighting, validation, auto-formatting — errors catch early |
| 3 | OOXML Tools VS Code extension install করুন | Direct .pptx browsing; faster workflow; visual structure |
| 4 | প্রথমে GUI-তে যতটুকু possible করুন, তারপর XML | GUI = safe, fast; XML = only for what GUI can't do |
| 5 | Incremental edit → test → edit → test cycle follow করুন | Small changes = easy debugging; big changes = hard to find errors |
| 6 | Color values সবসময় 6-character hex (# ছাড়া) ব্যবহার করুন | XML format requirement; wrong format = error |
| 7 | Language-specific font fallbacks XML-এ set করুন | GUI-তে impossible; XML-only feature; Bangla/Hindi/Tamil support |
| 8 | EMU conversion reference table কাছে রাখুন | 1 inch = 914400 EMU; quick reference = fewer mistakes |
| 9 | Python/batch scripts ব্যবহার করুন multiple file edits-এ | Manual editing × 100 files = hours; script = minutes |
| 10 | Edited theme-কে .thmx হিসেবে save করুন reuse-এর জন্য | One-time XML edit → .thmx → apply to any future presentation |
| 11 | ZIP repacking-এ root structure verify করুন | [Content_Types].xml at root = works; nested folder = corrupt |
| 12 | XML editing knowledge team-এ document করুন | Knowledge sharing; future maintainability; team capability |
| # | ভুল | কী হয় | সমাধান |
|---|---|---|---|
| 1 | Backup না নিয়ে edit শুরু করা | File corrupt → original lost → hours of work gone | ALWAYS backup first; "_BACKUP" suffix; separate folder |
| 2 | Hex color-এ # include করা | XML parse error; color not recognized | val="638766" (# ছাড়া); not val="#638766" |
| 3 | ZIP repack-এ extra folder layer | "File is corrupt and cannot be opened" | ZIP root-এ directly: [Content_Types].xml, _rels/, ppt/, docProps/ |
| 4 | Notepad দিয়ে XML edit করা | Encoding changed; BOM removed; line breaks corrupted | VS Code বা Notepad++ ব্যবহার করুন |
| 5 | Tag close না করা বা misspell করা | XML parse error; PowerPoint repair dialog | VS Code XML validation enable; matching tags verify |
| 6 | Font name ভুল লেখা | Font not found; fallback font used; wrong appearance | Exact font name verify — Windows Fonts folder-এ check |
| 7 | একবারে অনেক changes করা | Error হলে কোন change cause করেছে বোঝা impossible | Incremental: ১-২ changes → test → আরো changes |
| 8 | Wrong XML file edit করা | Changes reflect হয় না; wrong element modified | Path verify: /ppt/theme/theme1.xml = theme; /ppt/slides/slide1.xml = slide |
| 9 | EMU values ভুল calculate করা | Elements wrong size/position; shadows too big/small | EMU reference: 1" = 914400; 1pt = 12700; calculator ব্যবহার |
| 10 | Percentage values-এ wrong scale ব্যবহার করা | 50% = 50000 (not 50 or 0.5); wrong values = wrong rendering | Scale: 1% = 1000; 50% = 50000; 100% = 100000 |
| 11 | XML structure (tags) change করা values-এর বদলে | Required elements missing; PowerPoint can't parse | শুধু attribute values change করুন; tags/structure intact রাখুন |
| 12 | Edit করে PowerPoint-এ test না করা | XML technically valid কিন্তু visual result unexpected | প্রতি edit session-এর পর PowerPoint-এ open করে verify |
| ✔️ | Task | Status |
|---|---|---|
| 🛡️ Safety | ||
| 1 | Original file backed up (_BACKUP copy created)? | ☐ |
| 2 | Working on copy (not original)? | ☐ |
| 🛠️ Setup | ||
| 3 | VS Code (or Notepad++) installed? | ☐ |
| 4 | XML extension installed in editor? | ☐ |
| 5 | 7-Zip installed? | ☐ |
| 📦 Extract | ||
| 6 | .pptx → .zip renamed? | ☐ |
| 7 | ZIP extracted to folder? | ☐ |
| 8 | theme1.xml located (/ppt/theme/)? | ☐ |
| ✏️ Edit | ||
| 9 | XML opened in proper editor (VS Code)? | ☐ |
| 10 | Color values correct (6-char hex, no #)? | ☐ |
| 11 | Font names exact match? | ☐ |
| 12 | EMU/percentage values correct? | ☐ |
| 13 | XML validation passed (no errors in editor)? | ☐ |
| 14 | File saved as UTF-8? | ☐ |
| 📦 Repack | ||
| 15 | All files selected (not parent folder)? | ☐ |
| 16 | Repacked as .zip? | ☐ |
| 17 | [Content_Types].xml at ZIP root verified? | ☐ |
| 18 | .zip → .pptx renamed? | ☐ |
| 🧪 Test | ||
| 19 | File opens in PowerPoint without errors? | ☐ |
| 20 | Colors correct? | ☐ |
| 21 | Fonts correct? | ☐ |
| 22 | Effects rendering correctly? | ☐ |
| 23 | XML Editing Rules (XE1-XE12) followed? | ☐ |
XML editing হলো PowerPoint theme customization-এর সবচেয়ে powerful, সবচেয়ে precise এবং সবচেয়ে advanced technique। PowerPoint-এর UI যেখানে শেষ, XML সেখান থেকে শুরু — exact color tint/shade percentages, language-specific font fallbacks, precise shadow parameters, custom gradient stops, batch modifications across hundreds of files — এই সবকিছু শুধু XML editing-এ possible। .pptx/.potx/.thmx files আসলে ZIP archives যার ভিতরে XML files থাকে — এবং theme1.xml হলো theme customization-এর heart।
এই article-এ আমরা শিখেছি:
PowerPoint files (.pptx, .potx, .thmx) আসলে ZIP archives যার ভিতরে XML files, media files এবং relationship files থাকে। এই XML files directly edit করে আপনি PowerPoint-এর সবচেয়ে গভীর level-এ customization করতে পারেন — UI-তে যা সম্ভব নয়, XML-এ তা সম্ভব। এটি advanced technique — কিন্তু একবার শিখলে আপনি হয়ে যাবেন PowerPoint theme master — এমন customizations করতে পারবেন যা ৯৯% PowerPoint users জানে না। এই article-এ আমরা A to Z শিখব — file structure বোঝা থেকে XML editing, theme XML anatomy থেকে practical modifications পর্যন্ত সবকিছু।
এই article-এ আমরা সম্পূর্ণ বিস্তারিতভাবে শিখব: