É possível gerar formatos diferentes de .docx e .odt com o plugin TinyButStrong e OpenTBS

StackOverflow https://stackoverflow.com/questions/6070725

Pergunta

Eu tenho um módulo que mescla um documento dos registros do banco de dados e .docx ou .odt modelo de documento.

Eu tenho que sair .docx, .odt ou .pdf.Para saída nos formatos Microsoft e Open, não há problema, tudo funciona corretamente.

Mas o que eu quero saber é: posso gerar a saída em um formato (como XML ou HTML) que possa usar para criar posteriormente um documento PDF?

Se não puder, existem bibliotecas que fornecem um recurso de mesclagem de documentos como:

          DOCX (or ODT) + database record => PDF

E não quero usar o phplivedocx.

Foi útil?

Solução

Não conheço nenhuma biblioteca PHP que faça DOCX => PDF.Na verdade, a conversão de DOCX para outra coisa em PHP é um problema aberto hoje.Isso independe de como você fez o DOCX.

Mas como você disse, são bibliotecas PHP para HTML => PDF.

HTML2Pdf é uma biblioteca PHP de boa reputação que faz HTML => PDF.Há também DomPdf.

Portanto, se você encontrar uma biblioteca PHP para DOCX => HTML, ela funcionará.

Claro que tem algumas limitações porque mesmo que tanto o PDF quanto o DOCX sejam abertos, eles possuem características muito específicas, precisam de um grande processo de renderização e os editores guardam algumas boas dicas para eles.

Converter DOCX em HTML é teoricamente possível.Existe um software Windows que faz isso EpingSoft.Se você precisar fazer isso em PHP, alguns artigos da web explicam como fazer isso, mas como não encontrei nenhum código PHP fazendo isso, acho que é mais teórico do que prático.

http://www.quepublishing.com/articles/article.aspx?p=691502

Quão complicado esse processo seria depende de quanto da formatação nativa do Word você precisa preservar durante a conversão.

Se você quiser tentar desta forma, é bom saber que o OpenTBS permite ler o XML antes e depois da fusão.É baseado em uma classe PHP chamada TbsZip que pode ler qualquer arquivo XML no DOCX, já que na verdade é um arquivo zip.

Outras dicas

Coloquei com sucesso uma versão portátil do libreoffice no servidor web do meu host, que chamo com PHP para fazer uma conversão de linha de comando de .docx, etc.para pdf.no vôo.Não tenho direitos de administrador no servidor web do meu host.Aqui está minha postagem no blog sobre o que eu fiz:

http://geekswithblogs.net/robertphyatt/archive/2011/11/19/converting-.docx-to-pdf-or-.doc-to-pdf-or-.doc.aspx

Yay!Converta diretamente de .docx ou .odt para .pdf usando PHP com o LibreOffice (sucessor do OpenOffice)!

Também é possível usar arquivos PDF diretamente no TBS após a descompactação:

qpdf --qdf --object-streams=disable in.pdf out.pdf
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top