Classe de manipulação de template Docx para Laravel 10.x, baseada na linguagem de modelagem bigode. Esta classe ainda está em forte desenvolvimento e funciona mais como uma prova de conceito no momento. As coisas mudarão rapidamente e poderão quebrá-las.
Este pacote ajuda você a usar arquivos docx com sintaxe bigode como modelos para mesclar documentos com estilo sofisticado com informações de qualquer fonte de dados. Ele pode substituir texto e imagens e oferece suporte a estilos HTML básicos (negrito, itálico, sublinhado).
composer require wrklst/ docxmustache
Verifique as dependências abaixo e a pasta de exemplos para configuração e uso.
A conversão HTML atual é básica e suporta apenas execuções singulares de texto em negrito, itálico e sublinhado e nenhuma combinação destes. Requer que todos os valores não html sejam escapados com htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
e um prefixo *[[DONOTESCAPE]]*
para que a classe saiba que não deve escapar do html antes de ser convertido para openXML.
A imagem precisa ser um URL acessível com uma imagem em formato compatível. O valor do URL precisa ser colocado no campo de descrição do texto alternativo da imagem. As imagens serão reamostradas de acordo com as restrições da imagem do espaço reservado. O valor da imagem precisa ser formatado com pseudo tags, como: [IMG-REPLACE]http://placehold.it/350x150[/IMG-REPLACE]
Verifique também o exemplo na pasta de exemplos para obter uma compreensão básica de como usar esta classe.
A conversão para PDF requer que libreoffice-common
esteja instalado no servidor (usado para conversão). Use sudo apt install libreoffice-common
em seu servidor baseado em ubuntu/debian. Instale também ttf-mscorefonts se precisar de suporte para fonte Arial ao converter documentos docx para pdf sudo apt-get install ttf-mscorefonts-installer
O pacote depende de várias funções específicas do Laravel. Ele poderia facilmente ser portado para outras estruturas ou para ser independente de estrutura. Além da dependência do Laravel, a página utiliza os seguintes pacotes:
Dependências específicas do Laravel (relevantes apenas se portadas para um ambiente não Laravel):
Se você gostaria de contribuir com algo para este pacote, sinta-se à vontade para fazer uma solicitação pull e um problema correspondente e teremos prazer em revisar e discutir.
Existem algumas aulas que auxiliam na redação e/ou alteração do conteúdo de documentos Word, algumas com licenças comerciais e outras gratuitas. Para o nosso propósito específico, não precisávamos da maioria dos recursos que muitas das bibliotecas existentes possuem – precisávamos de uma solução simples que permitisse substituir valores e imagens e percorrer os dados de uma maneira fácil e direta.
Muitas das outras bibliotecas usam clonagem para repetir um bloco com alguma sintaxe de modelo personalizada em vez de usar uma sintaxe de modelo existente. Usamos a sintaxe usual do bigode, também para conseguir repetir o conteúdo em quantas dimensões forem necessárias.
Outras classes PHP para manipular documentos Word openXML: