Ajuda com p:dataexporter primefaces

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

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.

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 :

[code] 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);
    
}[/code]

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

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

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?