Ir ao conteúdo
  • Cadastre-se

Como exportar página HTML para PDF - javaweb


Posts recomendados

Esse é o código : 

package controle;import java.io.*;import org.docx4j.org.xhtmlrenderer.pdf.ITextRenderer;import org.w3c.dom.Document;import org.w3c.tidy.Tidy;import com.lowagie.text.DocumentException;public class PdfcrowdTest {public static void convert(String input, OutputStream out) throws DocumentException{convert(new ByteArrayInputStream(input.getBytes()), out);}public static void convert(InputStream input, OutputStream out) throws DocumentException {Tidy tidy = new Tidy();Document doc = tidy.parseDOM(input, null);ITextRenderer renderer = new ITextRenderer();renderer.setDocument(doc, null);renderer.layout();renderer.createPDF(out);}}
 
Eu já apliquei ele tudo certo, peguei de um site, coloquei as JAR's necessárias, porém não sei como aplicar isso na pagina html, digo fazer um botão que tenha ligação com essa classe. 
E também estou usando o iText aí, gostaria de saber se é necessario colocar paragrafo por paragrafo o que desejar inserir no PDF ou funciona de forma automatica com o link ? 
Caso necessário estou disposto a usar outro método/ferramenta, desculpe qualquer "erro" meu, e agradeço alguma possível ajuda. 
Link para o comentário
Compartilhar em outros sites

Primeiro você precisa retornar algo do método que produz o PDF.

public static InputStream convert(String input, OutputStream out) throws DocumentException{	return convert(new ByteArrayInputStream(input.getBytes()), out);}//Método não precisa ficar visível a todos, pois vc já possui um método pra realizar essa conversãoprivate static InputStream convert(InputStream input, OutputStream out) throws DocumentException {	Tidy tidy = new Tidy();	Document doc = tidy.parseDOM(input, null);	ITextRenderer renderer = new ITextRenderer();	renderer.setDocument(doc, null);	renderer.layout();	renderer.createPDF(out);	return new ByteArrayInputStream(out.toByteArray());}

Agora, na sua aplicação, você precisa que retorne o stream de dados para o cliente. Caso esteja usando JAX-RS na parte web, você teria um método semelhante a isso:

@[member=Get]@Produces("application/pdf")@Path("/download")public Response sendPDF() {	//Gera o PDF como Stream de dados	InputStream stream = PdfcrowdTest.convert("test", new ByteArrayOutputStream());	//Retorna a resposta com status 200 para o navegador junto com o stream de dados.	return Response.ok(stream).build();}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...