O que claude-skill-hwpx faz?
Cria, lê, edita e converte documentos do Hangul (.hwpx) em Python, com funções aprimoradas para formatação de tabelas (margens de célula, alinhamento vertical, tratamento de texto, quebra de página e expansão de tabela).
Visão Geral
Este skill adiciona capacidades avançadas de manipulação de documentos .hwpx (formato nativo do Hangul, processador de texto coreano) para agentes de IA. Ele se baseia em bibliotecas Python como python-hwp ou pyhwpx para oferecer operações de alto nível, incluindo:
- Criação: Gerar novos documentos .hwpx do zero.
- Leitura: Extrair texto e metadados de arquivos existentes.
- Edição: Modificar conteúdo, estilos e formatação.
- Conversão: Exportar para outros formatos (ex.: PDF, HTML) quando suportado pela biblioteca base.
- Formatação de Tabelas: Funções adicionais para controle fino:
- Margens internas das células (
set_cell_margins) - Alinhamento vertical do texto na célula (
set_vertical_align) - Tratamento de espaçamento entre letras/palavras dentro da célula (
set_text_treatment) - Controle de quebra de página dentro da tabela (
set_page_break) - Expansão automática da tabela para preencher a largura da página (
stretch_table)
- Margens internas das células (
Pré-requisitos
- Python 3.7+
- Biblioteca
pyhwpx(ou equivalente) instalada via pip:pip install pyhwpx
Uso Básico
Criar um novo documento
from hwpx import HWPX
hwp = HWPX()
hwp.create()
hwp.add_text("Olá, mundo!")
hwp.save("exemplo.hwpx")
Adicionar uma tabela formatada
from hwpx import HWPX
hwp = HWPX()
hwp.create()
table = hwp.add_table(rows=3, cols=4)
# Aplicar formatação avançada
table.set_cell_margins(top=5, bottom=5, left=10, right=10)
table.set_vertical_align("middle")
table.set_text_treatment(tracking=0.5, word_spacing=1.0)
table.set_page_break(allow_break=False)
table.stretch_table()
# Preencher dados
data = [["Nome", "Idade", "Cidade", "País"],
["Ana", 28, "São Paulo", "Brasil"],
["João", 35, "Lisboa", "Portugal"]]
for i, row in enumerate(data):
for j, cell in enumerate(row):
table.set_cell(i, j, str(cell))
hwp.save("tabela_formatada.hwpx")
Documentação das Funções de Tabela
| Função | Parâmetros | Descrição |
|---|---|---|
set_cell_margins | top, bottom, left, right (pt) | Define as margens internas de todas as células |
set_vertical_align | "top", "middle", "bottom" | Alinha verticalmente o conteúdo da célula |
set_text_treatment | tracking (pt), word_spacing (pt) | Ajusta o espaçamento entre letras e palavras |
set_page_break | allow_break (booleano) | Permite ou não quebra de página dentro da tabela |
stretch_table | (sem parâmetros) | Expande a tabela para ocupar a largura total da página |
Exemplos Avançados
Converter .hwpx para texto simples
from hwpx import HWPX
hwp = HWPX()
hwp.open("documento.hwpx")
text = hwp.extract_text()
print(text)
Editar célula específica
from hwpx import HWPX
hwp = HWPX()
hwp.open("relatorio.hwpx")
table = hwp.get_table(0)
table.set_cell(1, 2, "Novo valor")
table.set_cell_margins(left=20) # Aumenta margem esquerda de todas as células
hwp.save("relatorio_editado.hwpx")
Limitações
- A formatação de tabelas é aplicada globalmente a todas as células da tabela (não por célula individual).
- A conversão para PDF depende da instalação de um visualizador Hangul no sistema.
- O tratamento de texto (
set_text_treatment) pode não ser suportado por todas as versões da biblioteca base.
Licença
Distribuído sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Contribuição
Contribuições são bem-vindas! Por favor, abra uma issue ou pull request no repositório original.