Uma biblioteca para manipulação dinâmica de documentos docx.
Project description
DynamicDoc Library
https://github.com/SamuelSGSouza/Dynamic-Docs
DynamicDoc é uma biblioteca Python que permite a manipulação dinâmica de documentos .docx, processando blocos condicionais e loops de maneira semelhante a templates. Esta biblioteca utiliza variáveis e expressões lógicas no documento, substituindo as tags encontradas com os valores fornecidos pelo usuário. No repositório deste projeto, você encontrará um exemplo de uso da biblioteca, bem como um arquivo de exemplo para testes.
Ferramentas Atuais
- Substituição de variáveis: Substitui as variáveis presentes no documento com os valores fornecidos.
- Blocos condicionais: Processa blocos
if, ou remover parágrafos de acordo com a condição. - Suporte a formatação: Formatação de variáveis substituídas com opções como negrito e itálico.
Ferramentas Futuras
- Blocos de loop: Suporte a blocos
for, permitindo iterações sobre listas será adicionado em futuras versões. - Condicionais aninhados: Suporte a condicionais adicionais como
elifeelseserão adicionadas em futuras versões.
Instalação
Para instalar as dependências da biblioteca, rode:
pip install DynamicDoc==0.1.5
Exemplo de Uso
from DynamicDoc.dynamicdoc import DynamicDoc
doc = DynamicDoc("template.docx",nome = "João", idade = 20, maioridade = True)
doc.save_document("output.docx")
#or
document_bytes = doc.get_document()
Documentação
Variáveis
Variáveis são definidas no documento com a seguinte sintaxe:
>>nome_da_variavel<<
As variáveis são substituídas pelos valores fornecidos no construtor da classe DynamicDoc. No exemplo acima, a variável nome será substituída por João.
As variáveis sofrerão uma safe_evaluation, ou seja, não é possível executar comandos maliciosos.
Ferramentas de Formatação
Atualmente, variáveis podem ser editadas com negrito e itálico. A sintaxe é a seguinte:
>>ENDERECO<<(N,I)
Onde N é negrito e I é itálico. No exemplo acima, a variável ENDERECO será substituída com a formatação de negrito e itálico.
Blocos Condicionais
Blocos condicionais sempre terão uma abertura e um fechamento. A sintaxe é a seguinte:
>>if NOMES<<
*seu texto*
>>endif<<
No exemplo acima, o bloco será processado se a variável NOMES for verdadeira. Caso contrário, o bloco será removido do documento.
Contribuição
Para contribuir com a biblioteca, siga os passos abaixo:
- Faça um fork do repositório
- Crie uma branch com a feature que deseja adicionar (
git checkout -b feature/nova-feature) - Commit as mudanças (
git commit -am 'Adicionando nova feature') - Faça um push para a branch (
git push origin feature/nova-feature) - Crie um novo Pull Request
Licença
Este projeto é licenciado sob a licença MIT - veja o arquivo LICENSE.md para mais detalhes.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dynamicdoc-1.0.0.tar.gz.
File metadata
- Download URL: dynamicdoc-1.0.0.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0785c03fe569088899ff547628cec7c94a576335250054b103d9e5af43ee8d21
|
|
| MD5 |
1f643b8499eeabaa97074a19666ce61a
|
|
| BLAKE2b-256 |
064aaff9f008c28599e3f89e517f235a8217af2ac54323c4002d2adc7812dfe4
|
File details
Details for the file DynamicDoc-1.0.0-py3-none-any.whl.
File metadata
- Download URL: DynamicDoc-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01398a0346c41dc66e66b86a92f45b13c871be69977b182b33526c3ebb23047c
|
|
| MD5 |
1eae6f367e214302879394ace307c9dc
|
|
| BLAKE2b-256 |
a6017b48ce913f4a36199cff6bb1b9da30a38799f3a6207e4f60f5580e672a0d
|