Que fait cli-anything-wps ?
Outil en ligne de commande pour contrôler WPS Office via l'interface d'automatisation COM. Prend en charge WPS Writer (traitement de texte), WPS Calc (tableur) et WPS Impress (présentation).
Prérequis
- Système d'exploitation Windows
- WPS Office (installé, version 12.0+)
- Python 3.10+
- pywin32 :
pip install pywin32
Installation
pip install -e .
cli-anything-wps --help
Génération automatisée de présentations PPT pilotée par JSON ⭐ Flux de travail principal en production
C'est le mode le plus utilisé : rechercher des données → générer des graphiques matplotlib → écrire du JSON → générer en un clic via WPS COM.
Processus complet (6 étapes)
1. Extraire le fond de modèle : modèle.pptx → template_bg.png (960x540)
2. WebSearch pour les données : notes d'admission / classements disciplinaires / plans de recrutement / données de recherche
3. Générer des graphiques matplotlib : histogrammes / diagrammes circulaires / courbes / barres horizontales / graphiques à bulles
4. Écrire data.json : agencement de 12 à 15 éléments [] (titre ≤ 4 caractères + espacement ≥ 24 pt)
5. python build_xxx.py : construction page par page via WPS COM
6. Sortie : double format PPTX + PDF
Ordre des diapositives standard
S1 Page de couverture → S2 Table des matières → S3-S10 Pages de contenu (graphiques + tableaux + cartes) → S11 Carte récapitulative → S12 Remerciements
Acheminement des types d'éléments
| type | Utilisation |
|---|
text | Zone de texte |
image | Image (y compris graphiques matplotlib) |
table | Tableau |
cards_2x3 | Cartes colorées 2 lignes x 3 colonnes |
cards_1x4_info | Cartes de statistiques numériques à 4 colonnes |
card_list_wide | Liste numérotée de la table des matières |
tagline_bar | Barre de synthèse en bas de page |
Contraintes clés ⚠️
- Espacement titre-contenu : titre y=14 h=40 (se termine à y≈54), le premier élément de contenu doit commencer à y≥76-78 (espacement ≥24 pt)
- Titre limité à 4 caractères maximum, centré, SimHei 40-44 pt, couleur de marque, sans ligne décorative
- Guillemets chinois dans le JSON : utiliser les guillemets « » au lieu de "" pour les citations dans le texte
- Tous les éléments dans les limites du canevas : 960×540, y+h≤518
- WPS COM :
Fill.ForeColor.RGB, SaveAs(path, 32) pour exporter en PDF
- Nettoyage avant exécution :
taskkill //F //IM wps.exe //T
Exemples de référence
16 projets dans le répertoire WPS/ :
| Projet | Pages | Thème |
|---|
| Tsinghua Xiehe / Université de Lanzhou / Faculté de médecine de Tongji / HIT / Université de Chongqing / Université de Nanhua | 12 pages | Admissions de chaque université |
| Université Sun Yat-sen / USTC / UCAS | 15 pages | Admissions dans les grandes écoles |
| Université de Fudan | 12 pages | Nouveaux cursus d'ingénierie + Faculté de médecine |
| Hôpital d'oncologie de SUSTech | 12 pages | Programme conjoint master-doctorat |
| PKU / Tsinghua / SUSTech / HUST / Zhejiang University City College | 9-14 pages | Présentations des établissements |
python -c "import zipfile; ..."
python gen_charts.py
python -c "import json; json.load(open('data.json','r',encoding='utf-8'))"
taskkill //F //IM wps.exe //T
python build_xxx.py
Structure des commandes CLI
wps
├── document # Gestion des documents : new/open/save/info
├── writer # Texte : add-paragraph/heading/list/table/image
├── calc # Tableur : set-cell/get-cell/set-range/merge-cells
├── impress # Présentation : add-slide/remove-slide/set-content/add-element
├── style # Styles : create/modify/list/apply/remove
├── preset # Préréglages de design : list/info/apply
├── export # Export : render output.pptx -p pptx
└── session # Session : status/undo/redo/history
Exemples d'utilisation
cli-anything-wps document new --type writer --name "Rapport" -o report.json
cli-anything-wps --project report.json writer add-heading -t "Rapport annuel" -l 1
cli-anything-wps --project report.json export render report.docx -p docx
cli-anything-wps --json document new --type writer --name "test"
Préréglages de design
| Préréglage | Palette de couleurs | Cas d'usage |
|---|
| academic | Bleu foncé #1A3C8B | Soutenance académique / Demande de subvention |
| consultant | Bleu foncé #003366 + Cyan vif | Rapport de conseil |
| business | Bleu professionnel #005294 | Réunion / Cours |
| tech | Presque noir #0F1423 | Technologie / IA / Rapport de données |
Contrôle qualité (5 dimensions)
| Dimension | Éléments vérifiés | Seuil |
|---|
| visual | Hiérarchie des polices / Contraste / Espaces vides | 70 points |
| pedagogy | Arc narratif / Connaissances préalables | 75 points |
| proofreading | Orthographe / Terminologie / Débordement | 80 points |
| parity | Cohérence PPTX/PDF | 85 points |
| substance | Exactitude des données / Références | 90 points |