Converta HTML para PDF com 06 linhas de Código

Tiago:

<img src=“file:///http://localhost:7001/srf/img/etiqueta/” + imgEtiqueta + “”>

FILE NÃO, NÉ? Tenta:

<img src=“http://localhost:7001/srf/img/etiqueta/” + imgEtiqueta + “”>

Já tentei também, porém sem sucesso…
aliás já tentei de tudo quanté jeito, mas nada…
alguém pode me ajudar?

Att,
Tiago

Faz um HttpGet para testar a url

HttpClient client = new HttpClient(); HttpMethod method = new GetMethod("URI_DA_IMAGEM"); client.executeMethod(method); method.getStatusCode();

Nesse caso quem tenta recuperar a imagem é o servidor.


Estou tendo um problema com essa biblioteca.

Preciso colocar as páginas em um esquema 2/5 e um rodapé em cada uma delas.

Meu conteúdo é dinâmico e não tenho como gerar um HTML com as informações.

O iText tem PdfPageEventHelper para tal.

bcruz,

Eu não tive problema nenhum em manipular HTML dinâmico, usei o Jtidy. Não recomendo muito, me parece uma versão meio antiga, mas tenho certeza que existem outras ferramentas para manipular HTML.

Quanto ao cabeçalho e rodapé, é um diferente para cada página? Ou o que muda é só a numeração? Novamente, eu fiz o rodapé e cabeçalho em HTML, foi só anotar corretamente e gerou o PDF com cabeçalhos e rodapés de acordo.

Também estou usando o Jtidy. Só mencionei o iText porque foi o que achei referente a paginação.

Você teria algum exemplo de anotação para gerar as páginas?

O rodapé é único para cada página sim…

Eu também não estou tendo problemas em gerar HTML dinamicamente, só comentei porque não tem como eu colocar a página e rodapé no meu HTML.

O que eu preciso é que após eu ter colocado o inputstream do meu HTML ele tivesse como “injetar” o rodapé e as páginas.

Att
Bruno

Pra cabeçalho e rodapé, tem no link:

http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html

Pra inserir depois, eu fazia com JTidy (ou direto com replace no string, não lembro bem). Mas o meu cabeçalho e meu rodapé eram IGUAIS para todas as páginas, exceto a parte de numeração.

Obrigado pela ajuda…

Eu já tinha visto esse link e o meu problema é que tenho que colocar na página.

<div id=\"footer\">  Page <span id=\"pagenumber\"/> of <span id=\"pagecount\"/> </div>

Preciso colocar o código acima na página … E no meu caso o HTML quem gera é o usuário, podendo alterar tamanho e tipo da fonte por exemplo.

Não tenho como prever onde a página vai quebrar.

Meu HTML também era gerado pelo usuário.

As únicas restrições que pedia é que não existisse um elemento com nome ‘footer’, e inseria logo antes/depois de uma tag como ‘head’ ou ‘html’.

Para mim funcionou, mas somente para a primeira página.

Nas demais a paginação não apareceu, não atende a paginação em cada página nem o rodapé

eae pessoal estou com um problema,como eu faço pra usar JAVASCRIPT em uma pagina html q é renderizada pelo ITEXT ?ja tentei de quase tudo que achei na net mais o ITEXT não reconhece o JAVASCRIPT =/

Assim eu nunca tentei fazer, mas na teoria não deveria funcionar.

Quem executa o javascript é o browser e cada um o faz de uma maneira diferente.

Cara o problema que eu estou tendo é o seguinte,eu tenho que pegar o tamanho das primeiras duas linha de uma tabela e comparar com o resto da folha que não esta sendo ocupada,no caso se o tamanho das duas primeiras linhas couber no espaço não usado eu imprimo na mesma folha caso contrario eu vo imprimi numa proxima folha !
Eu ja consegui fazer tudo isso mais em javaScript, e não sei como fazer de outro jeito que o iText entenda !

Bom dia / Boa Tarde / Boa noite

Revivendo este tópico

Estou com o seguinte problema: utilizei em meu projeto aqui na empresa esta implementação que o nosso amigo EderBaum compartilhou conosco, porém exitem um problema quando utilizado junto com o JasperReports pois o jasper usa a lib itext 2.1.7 e quando tento executar esta linha ITextRenderer renderer = new ITextRenderer(); no código eu tomo um Exception na cabeça " NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox©[I " enfim quando troco a Lib do iText para a 2.0.8 ,que é a utilizada no codigo mostrador pelo EderBaum, o Japer é que da o erro NoSuchMethodError: com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V

como pode uma versão mais atual não conter o metodo anterior!

Alguém ja passou por isso? estou pesquisando ja faz um tempo uma solução para este problema.

Obrigado

Boa noite pessoal,

Alguém sabe como eu faria para converter uma página jsp da minha aplicação para pdf ???

Obrigado

[quote=sciuba]Bom dia / Boa Tarde / Boa noite

Revivendo este tópico

Estou com o seguinte problema: utilizei em meu projeto aqui na empresa esta implementação que o nosso amigo EderBaum compartilhou conosco, porém exitem um problema quando utilizado junto com o JasperReports pois o jasper usa a lib itext 2.1.7 e quando tento executar esta linha ITextRenderer renderer = new ITextRenderer(); no código eu tomo um Exception na cabeça " NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox©[I " enfim quando troco a Lib do iText para a 2.0.8 ,que é a utilizada no codigo mostrador pelo EderBaum, o Japer é que da o erro NoSuchMethodError: com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V

como pode uma versão mais atual não conter o metodo anterior!

Alguém ja passou por isso? estou pesquisando ja faz um tempo uma solução para este problema.

Obrigado[/quote]

caso alguém encontrou o mesmo problema é só substituir a lib do iText por uma da versão iText 2.1.0 …
vlws

Pessoal, bom dia!

Estou tendo problemas ao criar um pdf.
Dependendo da quantidade de dados que tenho, sempre esta vindo uma página em branco no final.
Há alguma forma de eu evitar isso? Tem como eu limitar o numero de informações a ser colocadas em cada página?

Consegui fazer o pdf perfeitamente como gostaria, todo alinhado, unico problema é no momento que tenho um texto que deve ficar na vertical , pelo que entendi a função não esta reconhecendo os comando :

-webkit-transform
-o-transform
-ms-transform
filter
writing-mode;

plumbing.render INFO:: Using CSS implementation from: org.xhtmlrenderer.context.StyleReference plumbing.css-parse WARNING:: (null#inline_style_1) margim-left is an unrecognized CSS property at line 202. Ignoring declarat ion. plumbing.css-parse WARNING:: (null#inline_style_1) word-break is an unrecognized CSS property at line 213. Ignoring declarati on. plumbing.css-parse WARNING:: (null#inline_style_1) Value opx is not a recognized identifier at line 220. Skipping declaration . plumbing.css-parse WARNING:: (null#inline_style_1) word-break is an unrecognized CSS property at line 219. Ignoring declarati on. plumbing.css-parse WARNING:: (null#inline_style_1) word-break is an unrecognized CSS property at line 228. Ignoring declarati on. plumbing.css-parse WARNING:: (null#inline_style_1) margim-left is an unrecognized CSS property at line 229. Ignoring declarat ion. plumbing.css-parse WARNING:: (null#inline_style_1) writing-mode is an unrecognized CSS property at line 256. Ignoring declara tion. plumbing.css-parse WARNING:: (null#inline_style_1) filter is an unrecognized CSS property at line 256. Ignoring declaration. plumbing.css-parse WARNING:: (null#inline_style_1) Found ) where one of a number, a percentage, a pixel value, an em value, a n ex value, a pica value, a millimeter value, a centimeter value, an inch value, a point value, an angle value, a time value, a freq value, a string, an identifier, a URI, a hex color, or function was expected at line 257. Skipping declaration. plumbing.css-parse WARNING:: (null#inline_style_1) writing-mode is an unrecognized CSS property at line 257. Ignoring declara tion. plumbing.css-parse WARNING:: (null#inline_style_1) -webkit-transform is an unrecognized CSS property at line 257. Ignoring de claration. plumbing.css-parse WARNING:: (null#inline_style_1) Unsupported CSS unit deg at line 258. Skipping declaration. plumbing.css-parse WARNING:: (null#inline_style_1) Unsupported CSS unit deg at line 258. Skipping declaration property at line 258. Ignoring declara tion. plumbing.css-parse WARNING:: (null#inline_style_1) -webkit-transform is an unrecognized CSS property at line 258. Ignoring de claration. plumbing.css-parse WARNING:: (null#inline_style_1) Unsupported CSS unit deg at line 259. Skipping declaration. plumbing.css-parse WARNING:: (null#inline_style_1) -moz-transform is an unrecognized CSS property at line 258. Ignoring decla ration. plumbing.css-parse WARNING:: (null#inline_style_1) Unsupported CSS unit deg at line 259. Skipping declaration. plumbing.css-parse WARNING:: (null#inline_style_1) -o-transform is an unrecognized CSS property at line 258. Ignoring declara tion. plumbing.css-parse WARNING:: (null#inline_style_1) Unsupported CSS unit deg at line 259. Skipping declaration. plumbing.css-parse WARNING:: (null#inline_style_1) Value for width must be an identifier, length, or percentage at line 260. Skipping declaration. plumbing.css-parse WARNING:: (null#inline_style_1) Value for height must be an identifier, length, or percentage at line 260. Skipping declaration.

alguem ai conhece outro comando q possa usar ?

Olá!

Primeiramente queria agradecer ao @EderBaum pelo código fornecido lá no primeiro tópico, me ajudou muuito! :slight_smile:

Depois tive que apanhar um pouco pois o código de barras que estava sendo gerado no PDF não refletia o que estava no HTML de geração de boletos Braspag.
No HTML original o código de barras é formado por uma sequencia de gifs brancos e pretos intercalados, mudando-se o width para ficar mais fino ou grosso. Por alguma razão, ao transformar para PDF esse resize não era capturado.
A solução que achei, talvez não seja a melhor, mas funcionou para mim, foi criar e substituir por uma série de tables em HTML simulando esses gifs.
Segue o código para quem interessar.

[code]String replaceString = sb.toString(); // no meu caso está recebendo de um StringBuffer o HTML que foi gerado a partir da URL

replaceString = replaceString.replace("", “<table style=“background-color:white; height:50px;float: left; border:0 !important;”><tr><td style=“padding:0.5px; border:0 !important;”></td></tr></table>”);
replaceString = replaceString.replace("", “<table style=“background-color:white; height:50px;float: left; border:0 !important;”><tr><td style=“padding:1.5px; border:0 !important;”></td></tr></table>”);
replaceString = replaceString.replace("", “<table style=“background-color:black; height:50px;float: left; border:0 !important;”><tr><td style=“padding:0.5px; border:0 !important;”></td></tr></table>”);
replaceString = replaceString.replace("", “<table style=“background-color:black; height:50px;float: left; border:0 !important;”><tr><td style=“padding:1.5px; border:0 !important;”></td></tr></table>”);
[/code]

O img src não está aparecendo no código, então coloquei aqui:
img src="/images/boleto/barcode/b.gif" alt=“image” width=“1” height=“50” style=“border:0;” //representa o gif branco, pode ter tamanho 1 ou 3
img src="/images/boleto/barcode/p.gif" alt=“image” width=“1” height=“50” style=“border:0;” //representa o gif preto, pode ter tamanho 1 ou 3

kkkkkkkkkkkk que divertido! :3 Da para fazer um ótimo editor de livros… Emboras que o word e até o Google Docs que é equivalente ao word ja estão vindo com a opção de conversão… Está virando uma extensão corriqueira. Em fim vlw :3