libreoffice-writer
Automatizar Documentos do LibreOffice Writer
Editar documentos manualmente é demorado e propenso a erros. Esta skill automatiza operações do LibreOffice Writer através da integração UNO, permitindo criação, edição, formatação e exportação programática de documentos.
Baixar o ZIP da skill
Upload no Claude
Vá em Configurações → Capacidades → Skills → Upload skill
Ative e comece a usar
Testar
A utilizar "libreoffice-writer". Create a new document with a title and export to PDF
Resultado esperado:
- Document created successfully: /path/to/report.odt
- Exported to PDF: /path/to/report.pdf
A utilizar "libreoffice-writer". Find and format text in existing document
Resultado esperado:
- Opened document: /path/to/draft.odt
- Formatted text range: bold, center-aligned
- Changes saved and document closed
A utilizar "libreoffice-writer". Apply patch with multiple operations
Resultado esperado:
- Patch parsed: 3 operations
- Operation 1 (replace_text): success
- Operation 2 (format_text): success
- Operation 3 (insert_table): success
- Overall status: ok
- Document persisted: true
Auditoria de Segurança
Baixo RiscoStatic analysis flagged 175 patterns but evaluation confirms these are false positives. The skill legitimately uses subprocess to launch LibreOffice with hardcoded arguments, tempfile for secure temp directories, and importlib for module detection. All external command usage has no user input injection vectors. Risk is low due to filesystem and external command dependencies requiring LibreOffice installation.
Problemas de Baixo Risco (3)
Fatores de risco
⚙️ Comandos externos (1)
📁 Acesso ao sistema de arquivos (2)
🔑 Variáveis de ambiente (1)
⚡ Contém scripts (2)
Pontuação de qualidade
O Que Você Pode Construir
Geração Automatizada de Relatórios
Gere relatórios padronizados criando documentos, inserindo texto e tabelas formatadas, e exportando para PDF para distribuição.
Processamento de Modelos de Documentos
Carregue documentos de modelo, substitua textos de espaço reservado por conteúdo dinâmico, atualize tabelas com novos dados e exporte versões personalizadas.
Operações em Lote de Documentos
Aplique alterações de formatação consistentes em vários documentos usando fluxos de trabalho de patch com reversão atômica em caso de falhas.
Tente Estes Prompts
Create a new LibreOffice Writer document at /path/to/report.odt. Insert a title "Monthly Report", add a section heading "Summary", then insert a paragraph describing this month's achievements. Export the final document to PDF.
Open /path/to/draft.odt and find the sentence "Quarterly revenue grew significantly" that appears after "Financial Overview" and before "Next Steps". Make it bold and centered. Then insert a bulleted list after "Action Items" with three tasks: Review budget, Schedule meeting, Send updates.
Open the document at /path/to/data-report.odt. Insert a table with 4 rows and 3 columns named "Sales Data". Populate it with headers [Region, Q1, Q2] and data rows for North, South, East regions. Later update the Q2 values when new numbers arrive.
Apply this patch to /path/to/manuscript.odt in atomic mode: First, replace all instances of "Draft" with "Final". Second, format the chapter titles bold with 14pt font. Third, insert a table of contents. If any operation fails, rollback all changes and report the error.
Melhores Práticas
- Sempre use caminhos de arquivo absolutos ao trabalhar com APIs Writer baseadas em UNO
- Ancore alvos de texto com frases completas ou frases em nível de parágrafo, não palavras isoladas
- Use limites after e before para restringir pesquisas quando o texto pode aparecer várias vezes
- Envolva operações de sessão em try/finally ou gerenciadores de contexto para garantir limpeza adequada
- Teste fluxos de trabalho de patch em modo best_effort antes de mudar para atomic para produção
Evitar
- Usar caminhos relativos - UNO requer caminhos de arquivo absolutos para todas as operações de documento
- Omitir o parâmetro de ocorrência quando o mesmo texto aparece várias vezes em um documento
- Chamar métodos de sessão após session.close() ter sido invocado
- Fornecer JSON malformado em itens de patch ou campos de dados
- Esperar que o alinhamento de parágrafo se aplique apenas ao texto correspondido em vez do parágrafo completo