Criação, edição e análise de PPTX
Visão Geral
Um usuário pode solicitar que você crie, edite ou analise o conteúdo de um arquivo .pptx. Um arquivo .pptx é essencialmente um arquivo ZIP contendo arquivos XML e outros recursos que você pode ler ou editar. Você tem diferentes ferramentas e fluxos de trabalho disponíveis para diferentes tarefas.
Leitura e análise de conteúdo
Extração de texto
Se você precisar apenas ler o conteúdo textual de uma apresentação, converta o documento para markdown:
# Converter documento para markdown
python -m markitdown caminho-para-arquivo.pptx
Acesso XML bruto
Você precisa de acesso XML bruto para: comentários, notas do apresentador, layouts de slides, animações, elementos de design e formatação complexa. Para qualquer um desses recursos, você precisará descompactar uma apresentação e ler seu conteúdo XML bruto.
Descompactando um arquivo
python ooxml/scripts/unpack.py <arquivo_office> <diretorio_saida>
Nota: O script unpack.py está localizado em skills/pptx/ooxml/scripts/unpack.py em relação à raiz do projeto. Se o script não existir neste caminho, use find . -name "unpack.py" para localizá-lo.
Estruturas de arquivo principais
ppt/presentation.xml- Metadados principais da apresentação e referências de slidesppt/slides/slide{N}.xml- Conteúdo de cada slide (slide1.xml, slide2.xml, etc.)ppt/notesSlides/notesSlide{N}.xml- Notas do apresentador para cada slideppt/comments/modernComment_*.xml- Comentários para slides específicosppt/slideLayouts/- Modelos de layout para slidesppt/slideMasters/- Modelos de slide mestreppt/theme/- Informações de tema e estiloppt/media/- Imagens e outros arquivos de mídia
Extração de tipografia e cores
Ao receber um exemplo de design para imitar: Sempre analise primeiro a tipografia e as cores da apresentação usando os métodos abaixo:
- Leia o arquivo de tema: Verifique
ppt/theme/theme1.xmlem busca de cores (<a:clrScheme>) e fontes (<a:fontScheme>) - Amostra do conteúdo do slide: Examine
ppt/slides/slide1.xmlpara uso real de fontes (<a:rPr>) e cores - Pesquise por padrões: Use grep para encontrar referências de cores (
<a:solidFill>,<a:srgbClr>) e fontes em todos os arquivos XML
Criando uma nova apresentação do PowerPoint sem um modelo
Ao criar uma nova apresentação do PowerPoint do zero, use o fluxo de trabalho html2pptx para converter slides HTML em PowerPoint com posicionamento preciso.
Princípios de Design
CRÍTICO: Antes de criar qualquer apresentação, analise o conteúdo e escolha os elementos de design apropriados:
- Considere o assunto: Sobre o que é esta apresentação? Que tom, setor ou clima ela sugere?
- Verifique a identidade visual: Se o usuário mencionar uma empresa/organização, considere suas cores e identidade visual
- Combine a paleta com o conteúdo: Selecione cores que reflitam o assunto
- Declare sua abordagem: Explique suas escolhas de design antes de escrever código
Requisitos:
- ✅ Declare sua abordagem de design baseada no conteúdo ANTES de escrever código
- ✅ Use apenas fontes seguras para web: Arial, Helvetica, Times New Roman, Georgia, Courier New, Verdana, Tahoma, Trebuchet MS, Impact
- ✅ Crie uma hierarquia visual clara por meio de tamanho, peso e cor
- ✅ Garanta legibilidade: forte contraste, texto com tamanho adequado, alinhamento limpo
- ✅ Seja consistente: repita padrões, espaçamento e linguagem visual entre os slides
Seleção de Paleta de Cores
Escolhendo cores criativamente:
- Pense além dos padrões: Quais cores realmente combinam com este tópico específico? Evite escolhas automáticas.
- Considere vários ângulos: Tópico, setor, clima, nível de energia, público-alvo, identidade visual (se mencionada)
- Seja aventureiro: Tente combinações inesperadas - uma apresentação de saúde não precisa ser verde, finanças não precisa ser azul marinho
- Construa sua paleta: Escolha 3 a 5 cores que funcionem juntas (cores dominantes + tons de apoio + destaque)
- Garanta contraste: O texto deve ser claramente legível sobre os fundos
Exemplos de paletas de cores (use-os para despertar a criatividade - escolha uma, adapte ou crie a sua própria):
- Azul Clássico: Azul escuro (#1C2833), cinza ardósia (#2E4053), prata (#AAB7B8), off-white (#F4F6F6)
- Verde-azulado e Coral: Verde-azulado (#5EA8A7), verde-azulado escuro (#277884), coral (#FE4447), branco (#FFFFFF)
- Vermelho Forte: Vermelho (#C0392B), vermelho vivo (#E74C3C), laranja (#F39C12), amarelo (#F1C40F), verde (#2ECC71)
- Blush Quente: Malva (#A49393), blush (#EED6D3), rosa (#E8B4B8), creme (#FAF7F2)
- Luxo Borgonha: Borgonha (#5D1D2E), carmesim (#951233), ferrugem (#C15937), dourado (#997929)
- Roxo Escuro e Esmeralda: Roxo (#B165FB), azul escuro (#181B24), esmeralda (#40695B), branco (#FFFFFF)
- Creme e Verde Floresta: Creme (#FFE1C7), verde floresta (#40695B), branco (#FCFCFC)
- Rosa e Roxo: Rosa (#F8275B), coral (#FF574A), rosa (#FF737D), roxo (#3D2F68)
- Lima e Ameixa: Lima (#C5DE82), ameixa (#7C3A5F), coral (#FD8C6E), azul-cinza (#98ACB5)
- Preto e Dourado: Dourado (#BF9A4A), preto (#000000), creme (#F4F6F6)
- Sálvia e Terracota: Sálvia (#87A96B), terracota (#E07A5F), creme (#F4F1DE), carvão (#2C2C2C)
- Carvão e Vermelho: Carvão (#292929), vermelho (#E33737), cinza claro (#CCCBCB)
- Laranja Vibrante: Laranja (#F96D00), cinza claro (#F2F2F2), carvão (#222831)
- Verde Floresta: Preto (#191A19), verde (#4E9F3D), verde escuro (#1E5128), branco (#FFFFFF)
- Arco-Íris Retrô: Roxo (#722880), rosa (#D72D51), laranja (#EB5C18), âmbar (#F08800), dourado (#DEB600)
- Terroso Vintage: Mostarda (#E3B448), sálvia (#CBD18F), verde floresta (#3A6B35), creme (#F4F1DE)
- Rosa Costeiro: Rosa velho (#AD7670), castor (#B49886), casca de ovo (#F3ECDC), cinza cinza (#BFD5BE)
- Laranja e Turquesa: Laranja claro (#FC993E), turquesa acinzentado (#667C6F), branco (#FCFCFC)
Opções de Detalhes Visuais
Padrões Geométricos:
- Divisores de seção diagonais em vez de horizontais
- Larguras de coluna assimétricas (30/70, 40/60, 25/75)
- Cabeçalhos de texto rotacionados a 90° ou 270°
- Molduras circulares/hexagonais para imagens
- Formas triangulares de destaque nos cantos
- Formas sobrepostas para profundidade
Tratamentos de Bordas e Molduras:
- Bordas grossas de uma cor (10-20pt) em apenas um lado
- Bordas de linha dupla com cores contrastantes
- Suportes de canto em vez de molduras completas
- Bordas em forma de L (superior+esquerdo ou inferior+direito)
- Destaques sublinhados abaixo dos cabeçalhos (3-5pt de espessura)
Tratamentos Tipográficos:
- Contraste extremo de tamanho (títulos de 72pt vs. corpo de 11pt)
- Cabeçalhos em maiúsculas com espaçamento amplo entre letras
- Seções numeradas em tipo de exibição superdimensionado
- Monoespaçada (Courier New) para dados/estatísticas/conteúdo técnico
- Fontes condensadas (Arial Narrow) para informações densas
- Texto contornado para ênfase
Estilo de Gráficos e Dados:
- Gráficos monocromáticos com uma única cor de destaque para dados importantes
- Gráficos de barras horizontais em vez de verticais
- Gráficos de pontos em vez de gráficos de barras
- Grades mínimas ou nenhuma
- Rótulos de dados diretamente nos elementos (sem legendas)
- Números superdimensionados para métricas importantes
Inovações de Layout:
- Imagens com sangria total com sobreposições de texto
- Coluna lateral (20-30% de largura) para navegação/contexto
- Sistemas de grade modular (blocos 3×3, 4×4)
- Fluxo de conteúdo em padrão Z ou padrão F
- Caixas de texto flutuantes sobre formas coloridas
- Layouts de várias colunas estilo revista
Tratamentos de Fundo:
- Blocos de cor sólida ocupando 40-60% do slide
- Preenchimentos gradientes (apenas verticais ou diagonais)
- Fundos divididos (duas cores, diagonal ou vertical)
- Faixas de cor de borda a borda
- Espaço negativo como elemento de design
Dicas de Layout
Ao criar slides com gráficos ou tabelas:
- Layout de duas colunas (PREFERIDO): Use um cabeçalho que abranja toda a largura e, em seguida, duas colunas abaixo - texto/marcadores em uma coluna e o conteúdo em destaque na outra. Isso proporciona melhor equilíbrio e torna os gráficos/tabelas mais legíveis. Use flexbox com larguras de coluna desiguais (por exemplo, divisão 40%/60%) para otimizar o espaço para cada tipo de conteúdo.
- Layout de slide inteiro: Deixe o conteúdo em destaque (gráfico/tabela) ocupar todo o slide para máximo impacto e legibilidade
- NUNCA empilhe verticalmente: Não coloque gráficos/tabelas abaixo do texto em uma única coluna - isso causa problemas de legibilidade e layout
Fluxo de Trabalho
- OBRIGATÓRIO - LEIA O ARQUIVO INTEIRO: Leia
html2pptx.mdcompletamente do início ao fim. NUNCA defina limites de alcance ao ler este arquivo. Leia o conteúdo completo do arquivo para obter sintaxe detalhada, regras críticas de formatação e práticas recomendadas antes de prosseguir com a criação da apresentação. - Crie um arquivo HTML para cada slide com as dimensões adequadas (por exemplo, 720pt × 405pt para 16:9)
- Use
<p>,<h1>-<h6>,<ul>,<ol>para todo o conteúdo de texto - Use
class="placeholder"para áreas onde gráficos/tabelas serão adicionados (renderize com fundo cinza para visibilidade) - CRÍTICO: Rasterize gradientes e ícones como imagens PNG PRIMEIRO usando Sharp, depois referencie-os no HTML
- LAYOUT: Para slides com gráficos/tabelas/imagens, use layout de slide inteiro ou layout de duas colunas para melhor legibilidade
- Use
- Crie e execute um arquivo JavaScript usando a biblioteca
html2pptx.jspara converter slides HTML em PowerPoint e salvar a apresentação- Use a função
html2pptx()para processar cada arquivo HTML - Adicione gráficos e tabelas às áreas de espaço reservado usando a API PptxGenJS
- Salve a apresentação usando
pptx.writeFile()
- Use a função
- Validação visual: Gere miniaturas e inspecione em busca de problemas de layout
- Crie grade de miniaturas:
python scripts/thumbnail.py output.pptx workspace/thumbnails --cols 4 - Leia e examine cuidadosamente a imagem da miniatura em busca de:
- Texto cortado: Texto sendo cortado por barras de cabeçalho, formas ou bordas do slide
- Sobreposição de texto: Texto sobrepondo-se a outro texto ou formas
- Problemas de posicionamento: Conteúdo muito próximo aos limites do slide ou outros elementos
- Problemas de contraste: Contraste insuficiente entre texto e fundos
- Se forem encontrados problemas, ajuste as margens/espaçamento/cores do HTML e regenere a apresentação
- Repita até que todos os slides estejam visualmente corretos
- Crie grade de miniaturas:
Editando uma apresentação do PowerPoint existente
Ao editar slides em uma apresentação do PowerPoint existente, você precisa trabalhar com o formato Office Open XML (OOXML) bruto. Isso envolve descompactar o arquivo .pptx, editar o conteúdo XML e recompactá-lo.
Fluxo de Trabalho
- OBRIGATÓRIO - LEIA O ARQUIVO INTEIRO: Leia
ooxml.md(~500 linhas) completamente do início ao fim. NUNCA defina limites de alcance ao ler este arquivo. Leia o conteúdo completo do arquivo para obter orientação detalhada sobre a estrutura OOXML e fluxos de trabalho de edição antes de qualquer edição de apresentação. - Descompacte a apresentação:
python ooxml/scripts/unpack.py <arquivo_office> <diretorio_saida> - Edite os arquivos XML (principalmente
ppt/slides/slide{N}.xmle arquivos relacionados) - CRÍTICO: Valide imediatamente após cada edição e corrija quaisquer erros de validação antes de prosseguir:
python ooxml/scripts/validate.py <dir> --original <file> - Compacte a apresentação final:
python ooxml/scripts/pack.py <diretorio_entrada> <arquivo_office>
Criando uma nova apresentação do PowerPoint usando um modelo
Quando você precisar criar uma apresentação que siga o design de um modelo existente, precisará duplicar e reorganizar os slides do modelo antes de substituir o conteúdo do espaço reservado.
Fluxo de Trabalho
-
Extraia o texto do modelo E crie uma grade visual de miniaturas:
- Extraia o texto:
python -m markitdown modelo.pptx > modelo-conteudo.md - Leia
modelo-conteudo.md: Leia o arquivo inteiro para entender o conteúdo da apresentação do modelo. NUNCA defina limites de alcance ao ler este arquivo. - Crie grades de miniaturas:
python scripts/thumbnail.py modelo.pptx - Veja a seção Criando Grades de Miniaturas para mais detalhes
- Extraia o texto:
-
Analise o modelo e salve o inventário em um arquivo:
- Análise Visual: Revise a(s) grade(s) de miniaturas para entender os layouts dos slides, padrões de design e estrutura visual
- Crie e salve um arquivo de inventário do modelo em
modelo-inventario.mdcontendo:# Análise de Inventário do Modelo **Total de Slides: [contagem]** **IMPORTANTE: Os slides são indexados a partir de 0 (primeiro slide = 0, último slide = contagem-1)** ## [Nome da Categoria] - Slide 0: [Código do layout, se disponível] - Descrição/propósito - Slide 1: [Código do layout] - Descrição/propósito - Slide 2: [Código do layout] - Descrição/propósito [... CADA slide deve ser listado individualmente com seu índice ...] - Usando a grade de miniaturas: Consulte as miniaturas visuais para identificar:
- Padrões de layout (slides de título, layouts de conteúdo, divisores de seção)
- Locais e contagens de espaços reservados para imagens
- Consistência de design entre grupos de slides
- Hierarquia e estrutura visual
- Este arquivo de inventário é OBRIGATÓRIO para selecionar modelos apropriados na próxima etapa
-
Crie o esboço da apresentação com base no inventário do modelo:
- Revise os modelos disponíveis da etapa 2.
- Escolha um modelo de introdução ou título para o primeiro slide. Deve ser um dos primeiros modelos.
- Escolha layouts seguros baseados em texto para os outros slides.
- CRÍTICO: Combine a estrutura do layout com o conteúdo real:
- Layouts de coluna única: Use para narrativa unificada ou tópico único
- Layouts de duas colunas: Use SOMENTE quando você tiver exatamente 2 itens/conceitos distintos
- Layouts de três colunas: Use SOMENTE quando você tiver exatamente 3 itens/conceitos distintos
- Layouts de imagem + texto: Use SOMENTE quando você tiver imagens reais para inserir
- Layouts de citação: Use SOMENTE para citações reais de pessoas (com atribuição), nunca para ênfase
- Nunca use layouts com mais espaços reservados do que conteúdo
- Se você tiver 2 itens, não os force em um layout de 3 colunas
- Se você tiver 4+ itens, considere dividir em vários slides ou usar um formato de lista
- Conte suas peças de conteúdo reais ANTES de selecionar o layout
- Verifique se cada espaço reservado no layout escolhido será preenchido com conteúdo significativo
-
Crie a apresentação copiando slides e substituindo o conteúdo:
- OBRIGATÓRIO: Leia a seção
modelo-inventario.mdque você criou antes de prosseguir para garantir que você entendeu todos os slides disponíveis - Use os scripts OOXML para montar a apresentação:
# Primeiro, descompacte o modelo python ooxml/scripts/unpack.py modelo.pptx workspace/descompactado cd workspace/descompactado # Edite ppt/presentation.xml para reorganizar/reordenar slides # Copie os arquivos de slide necessários: cp ppt/slides/slide1.xml ppt/slides/slideN.xml # Edite o conteúdo do slide XML, referências de relacionamento e espaços reservados # Valide a estrutura: python ooxml/scripts/validate.py workspace/descompactado --original modelo.pptx # Recompacte em um novo arquivo: python ooxml/scripts/pack.py workspace/descompactado workspace/minha_apresentacao.pptx
- OBRIGATÓRIO: Leia a seção
-
Validação visual: Repita as etapas de validação visual da criação sem modelo
Criando Grades de Miniaturas
Use python scripts/thumbnail.py para criar uma grade de miniaturas de slides para rápida inspeção visual. Isso permite que você veja todos os slides de uma só vez para verificar a correção visual, consistência de layout, contraste e sobreposição de texto.
# Uso básico
python scripts/thumbnail.py entrada.pptx [diretorio_saida] [opcoes]
# Especificar número de colunas (padrão: 4) e largura da miniatura
python scripts/thumbnail.py entrada.png -c 5 -s 300
Onde encontrar o script: Se scripts/thumbnail.py não existir em relação ao diretório de trabalho atual, localize-o:
- Procure por:
find . -path "*/pptx/scripts/thumbnail.py" - Ou baixe de:
curl -O https://raw.githubusercontent.com/ComposioHQ/awesome-claude-skills/master/scripts/thumbnail.py
Scripts Auxiliares e Referências
Scripts de utilidade OOXML
- Descompactar:
python ooxml/scripts/unpack.py <arquivo_entrada> <diretorio_saida> - Validar:
python ooxml/scripts/validate.py <diretorio> --original <arquivo_original_pptx> - Compactar:
python ooxml/scripts/pack.py <diretorio_entrada> <arquivo_saida>
Script de miniatura de slides
python scripts/thumbnail.py <arquivo_entrada_pptx> <diretorio_saida> [opcoes]
Referências Externas
- Guia de sintaxe HTML2PPTX (leia sempre na íntegra para criação)
- Guia de edição OOXML (leia sempre na íntegra para edição)
- Biblioteca HTML2PPTX JS
Exemplos Rápidos
Criar nova apresentação (sem modelo)
# 1. Leia html2pptx.md na íntegra
# 2. Crie arquivos HTML para cada slide
# 3. Crie e execute um script JS para converter e salvar
# 4. Valide visualmente com thumbnail.py
Criar nova apresentação (a partir de modelo)
# 1. Extraia o texto e crie miniaturas do modelo: markitdown + thumbnail.py
# 2. Analise e crie inventário
# 3. Descompacte: unpack.py
# 4. Copie/reorganize slides via presentation.xml e arquivos de slide
# 5. Substitua o conteúdo do espaço reservado
# 6. Valide: validate.py
# 7. Compacte: pack.py
Editar apresentação existente
# 1. Leia ooxml.md na íntegra
# 2. Descompacte: unpack.py
# 3. Edite arquivos XML (slides, notas, comentários, etc.)
# 4. Valide: validate.py
# 5. Compacte: pack.py