Ajuda com p:dataexporter primefaces

4 respostas
D

boa tarde,

estou usando o dataexporter do primefaces mas estou com alguns problemas:

a palavras com acernto e ç: ex: “REGIÃO” fica no pdf assim “REGIO” fica sem o caracter acentuado

e nao consigo por “title” e nao consigo configurar as margens.

estou usando esse exemplo do site http://www.primefaces.org/showcase-labs/ui/exporterProcessor.jsf

4 Respostas

thiagocastanhari

Estou com os mesmos problemas Dalton.

Você conseguiu resolver isso? Se sim, me ajude por favor.

Ae não conseguiu resolver qual foi sua alternativa?

Desde já agradeço.

thiagocastanhari

Pesquisando um pouco mais consegui por margem, título, texto como paragrafo, alinhar o texto ou a imagem.

Para corrigir o problema de acentuação basta mudar o encoding para iso-8859-1, como abaixo:
<h:commandLink>  
     Link
     <p:dataExporter type="pdf" encoding="iso-8859-1" target="tablePorCategoria" preProcessor="#{categoryBean.preProcessPDF}" fileName="cars"/>  
</h:commandLink>
Para colocar margem, título, e paragráfo, segue o exemplo de método preProcessor :
public void preProcessPDF(Object document) throws IOException, BadElementException, DocumentException {
        
        
        //cria o documento
        Document pdf = (Document) document;        
        
        //seta a margin e página, precisa estar antes da abertura do documento, ou seja da linha: pdf.open()
        pdf.setMargins(200f, 200f, 200f, 200f);
        pdf.setPageSize(PageSize.A4);
        pdf.addTitle("Título here brother");
        
        pdf.open();
        
        //aqui pega o contexto para formar a url da imagem
        ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
        String logo = servletContext.getRealPath("") + File.separator + "resources/images" + File.separator + "logo.png";

        
        //cria a imagem e passando a url
        Image image = Image.getInstance(logo);

        //alinha ao centro
        image.setAlignment(Image.ALIGN_CENTER);

        //adciona a img ao pdf
        pdf.add(image);
        

        //adiciona um paragrafo ao pdf, alinha também ao centro
        Paragraph p = new Paragraph("teste frase");
        p.setAlignment("center");
        pdf.add(p);
        
    }

O primefaces usa o Itext, caso queira algo mais vc pode procurar no 4shared.com por Itext in Action é um livro sobre o assunto.

redthi

@thiagocastanhari
Você conseguiu por em outro componente essa função, fora o command link,
estava tentando colocar em um menuButton http://www.primefaces.org/showcase-labs/ui/menubutton.jsf

mas não tive sucesso ainda, se tiver alguma consideração.

Abs.

Santos_Guilherme

Estou com dificuldade para trabalhar com as colunas geradas em pdf, elas vem com tamanho fixo,
será que é possível alterar a largura de cada coluna?

Criado 16 de fevereiro de 2012
Ultima resposta 29 de abr. de 2013
Respostas 4
Participantes 4