Tenho uma aplicação onde o front-end é AngularJS 1.x e o back-end é Java com SpringRest.
Esta aplicação permite a criação de laudos médicos. Para isso utilizo a api javascript CKEditor, onde tenho um cabaçalho pré configurado e o usuário digita somente o laudo e pode editá-lo como quiser, cor de fonte, tamanho, estilo, alinhamento, tabelas, etc.
Agora preciso gerar o pdf desses laudos, pois bem, tentei utilizar o IText, o resultado foi mediano, alguns itens saem desconfigurados e ao pesquisar um pouco mais sobre esta api vi que é possível tratar algumas coisas de css, mas achei muito trabalhosa além de desconfiar se essa seria a alternativa mais certeira.
Pensei, em trocar o CKEditor e gerar apenas através do IReport, porém perderia a edição do texto, ou até mesmo uma integração com o OpenOffice (não estudei o quão trabalhoso isso seria).
O meu intuito aqui é ouvir de vocês algumas opiniões em como eu poderia resolver esse problema.
Olá, certa vez fiz um sistema parecido, no caso foi em swing mas usei um editor HTML, para o relatório usei o IRport (jasper), porém ele não aceita formatações avançadas, somente fonte, cor… ficou meio limitado.
No final das contas criei um arquivo modelo no word com algumas chaves para inserção de valores ex: (${nome_pessoa}), em seguida li esse .docx com POI e fiz um replace nas chaves, ficou mais livre para o usuário formatar de acordo com a necessidade.
Não sei se isso se adaptaria ao seu contexto, foi a solução que encontrei na época.
Uma idéia para você seria renderizar na tela o que o usuário escrever usando somente HTML e com o css @media print customizar a impressão.
Outra idéia: HTML to Docx - Docx to PDF (gambiarra detected)
Andrauss, pensei em fazer algo como disse, com o POI ou a API do Openoffice, porém acho que por ser um sistema web ficaria ruim em termos de usabilidade, eu teria que disponibilizar o download do documento pré configurado e após edição fazer o upload deste documento novamente.
A questão do IText que o j-menezes citou é uma opção mais simples, eu teria que adaptar algumas formatações css no html do meu cabeçalho que sai desconfigurado.
Em último caso, vou sacrificar a formatação do texto a ser digitado pelo usuário e gero um pdf através do IReport mesmo.
De qualquer forma, obrigado pelas sugestões.
Abraço!
Exatamente o que estou tentando fazer, realizo a conversão direta do texto no formato HTML para PDF utilizando IText, ele funciona legal, porém terei que adaptar algumas configurações css que não estão sendo convertidas, sai desconfigurado…
Vou fazer esse teste, posto aqui o resultado depois.