Problemas na conversão de HTML para PDF

7 respostas
A

Pessoal estou tentando converter uma arquivo html gerado por minha aplicação java para pdf fazendo o seguinte:

  1. Tidy para converter de HTML para XHTML
  2. xalan para converter de XML para FO
  3. xsl-fo pra converter de FO para PDF

O problema é que quando tento converter um html para xhtml obtenho a msg abaixo:

Tidy (vers 4th August 2000) Parsing “casa.html”
line 1 column 1 - Warning: inserting missing ‘title’ element

casa.html: Document content looks like HTML 3.2
1 warnings/errors were found!

Aqui esta minha classe html

<HEAD></HEAD>
<BODY style="FONT-FAMILY: "><STRONG>Casa casa</STRONG></BODY>

7 Respostas

bandrade

É só perder 2 minutos e ler a mensagem de erro… tá falando que falta o elemento ‘title’ no seu html… vc tentou colocar title?? (;

ps1. por favor, não venha me xingando falando q eu fui grosso e esnobe por dar a resposta dessa maneira e yada-yada-yada… + nem ler o warning, é OSSO.

A

Caro colega bandrade,

Na verdade eu não perdi 2 minutos mas 0,001 segundo, e isso não resolveu. Mesmo porque o Tidy depois que ele gera o XHTML ele próprio tem a inteligência de colocar o automaticamente.

Outra questão já que você parece saber tanto sobre o Tidy como fazer ele considerar toda a formatação do HTML até a geração do documento final que é um PDF?

falô.

bandrade

Vc colocou dentro da tag ?
O html tem o title?

A

bandrade

O problema não era fechar ou abrir a tag Title. Bastou eu compilar o código do Tiny utilizado o ANT e gerar um novo tiny.jar para que funcionasse.

Respondendo a sua pergunta coloqueis sim a tag title dentro do head. mas este não era o problema. Apesar do warning dizer isto.

Mas ainda a pergunta, alguem conhece algum template que define toda a linguagem HTML? Geralmente este template é definido em Stylesheet. Isso permitiria me a manter toda formatação encontrada num arquivo html. A extensão deste arquivo deve ser *.xsl

marcelo_emanoel

opa vi aí o seu problema… aí tava pensando aqui… tu ja tentou usar o jasper reports? com ele vc conseguiria montar o html e o pdf num passo só… sem precisar dar tanta volta… e vc conseguiria montar as coisas rapidinho ja q se vc usar o ireport é gráfico… só clicar e arrastar… espero ter ajudado

abração

A

marcelo_emanoel

Esta é uma de minhas idéias. Mas o problemas é que tenho um campo no relatório que tem vários textos os quais tem formatações diferentes. E no caso o iReport ele não permite ter dentro de um único campo diferentes padrões de formatação para strings diferentes. Tente colocar um cmapo estático no iReport e como texto coloque “O rato roeu a roupa da rainha de roma”, agora coloque a string “rato” em negrito e a string “rainha” em italico e depois coloque a string “roupa” sublinhado. Isso não é possível no Ireport ou JasperReport. E é exatamente isso que preciso permitir diferentes formatações em um único campo.

M

Ola aluizio, há varias soluções para a conversão de html para pdf.
Uma das melhores é através do open office e da api jodconverter, esta forma para além de ser das que cria menos problemas é a máis fiável.
Outra solução é criar um pdf de um xml utilizado o xsl-fo para formatação.
A formatação através do xsl-fo permite criar toda a formatação da página: cabeçalho, rodapé, tamanho da página e margens.
É possivel mesmo inserir imagens através do xsl-fo e tabelas, e retirar do xml a informação que se pretende.
A utilização do jtidy torna a solução instável, visto que este verifica tudo o código html através de uma filtragem bastante exigente,
para ignorar a verificação do código html é necessário dar muitas voltas em java.

Criado 19 de junho de 2006
Ultima resposta 30 de out. de 2007
Respostas 7
Participantes 4