¿Qué hace cli-anything-wps?
Herramienta de línea de comandos para controlar WPS Office a través de la interfaz de automatización COM. Soporta WPS Writer (procesador de textos), WPS Calc (hojas de cálculo) y WPS Impress (presentaciones).
Requisitos previos
- Sistema operativo Windows
- WPS Office (instalado, versión 12.0+)
- Python 3.10+
- pywin32:
pip install pywin32
Instalación
pip install -e .
cli-anything-wps --help
Generación automatizada de presentaciones basada en datos JSON ⭐ Flujo de trabajo principal para producción
Este es el modo más utilizado: buscar datos → generar gráficos con matplotlib → escribir JSON → generar con WPS COM en un solo paso.
Flujo completo (6 pasos)
1. Extraer fondo de plantilla: plantilla.pptx → template_bg.png (960x540)
2. WebSearch para datos: puntuaciones de admisión/ranking de materias/plan de admisión/datos de investigación
3. matplotlib genera gráficos: barras/pastel/líneas/barras horizontales/burbujas
4. Escribir data.json: 12-15 diapositivas con elementos[] (título ≤4 caracteres + separación ≥24pt)
5. python build_xxx.py: WPS COM construye diapositiva por diapositiva
6. Salida: formato doble PPTX + PDF
Secuencia de diapositivas estándar
S1 Portada → S2 Índice → S3-S10 Diapositivas de contenido (gráficos+tablas+tarjetas) → S11 Tarjeta de resumen → S12 Agradecimientos
Enrutamiento de tipos de elementos
| type | Uso |
|---|
text | Cuadro de texto |
image | Imagen (incluye gráficos de matplotlib) |
table | Tabla |
cards_2x3 | Tarjetas de colores 2 filas x 3 columnas |
cards_1x4_info | Tarjeta de estadísticas numéricas de 4 columnas |
card_list_wide | Lista numerada de índice |
tagline_bar | Barra de resumen al pie de la diapositiva |
Restricciones clave ⚠️
- Separación entre título y contenido: título y=14 h=40 (termina en y≈54), el primer elemento de contenido debe comenzar en y≥76-78 (separación ≥24pt)
- Máximo 4 caracteres para el título, centrado, SimHei 40-44pt, color de marca, sin líneas decorativas
- Comillas chinas en JSON: usar 「」 en lugar de
"" para citas dentro del texto
- Todos los elementos dentro del lienzo: 960×540, y+h≤518
- WPS COM:
Fill.ForeColor.RGB, SaveAs(path, 32) para exportar PDF
- Limpiar antes de ejecutar:
taskkill //F //IM wps.exe //T
Ejemplos de referencia
16 proyectos en el directorio WPS/:
| Proyecto | Diapositivas | Tema |
|---|
| Tsinghua Union/Lanzhou Univ/Tongji Med/HIT/Chongqing Univ/Nanhua Univ | 12 | Admisión a varias universidades |
| Sun Yat-sen Univ/USTC/UCAS | 15 | Admisión a universidades prestigiosas |
| Fudan Univ | 12 | Nuevas ingenierías + Facultad de Medicina |
| SUSTech Cancer Hospital | 12 | Programa conjunto de maestría y doctorado |
| PKU/Tsinghua/SUSTech/HUST/Zhejiang Univ City College | 9-14 | Introducción a varias universidades |
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
Estructura de comandos CLI
wps
├── document # Gestión de documentos: new/open/save/info
├── writer # Procesador de textos: add-paragraph/heading/list/table/image
├── calc # Hojas de cálculo: set-cell/get-cell/set-range/merge-cells
├── impress # Presentaciones: add-slide/remove-slide/set-content/add-element
├── style # Estilos: create/modify/list/apply/remove
├── preset # Preajustes de diseño: list/info/apply
├── export # Exportar: render output.pptx -p pptx
└── session # Sesión: status/undo/redo/history
Ejemplos de uso
cli-anything-wps document new --type writer --name "Informe" -o report.json
cli-anything-wps --project report.json writer add-heading -t "Informe anual" -l 1
cli-anything-wps --project report.json export render report.docx -p docx
cli-anything-wps --json document new --type writer --name "test"
Preajustes de diseño
| Preajuste | Paleta de colores | Escenario de uso |
|---|
| academic | Azul oscuro #1A3C8B | Defensa académica/solicitud de fondos |
| consultant | Azul oscuro #003366 + cian brillante | Informes de consultoría |
| business | Azul corporativo #005294 | Reuniones/presentaciones de trabajo |
| tech | Casi negro #0F1423 | Tecnología/IA/informes de datos |
Revisión de calidad (5 dimensiones)
| Dimensión | Elementos a revisar | Umbral |
|---|
| visual | Jerarquía tipográfica/contraste/espacio en blanco | 70 puntos |
| pedagógica | Arco narrativo/conocimientos previos | 75 puntos |
| corrección | Ortografía/terminología/desbordamiento | 80 puntos |
| paridad | Consistencia PPTX/PDF | 85 puntos |
| contenido | Precisión de datos/referencias | 90 puntos |