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

T

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.

T

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.

R

@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.

S

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