-
Notifications
You must be signed in to change notification settings - Fork 15
PdfPrinter
PDFPrinter é um componente que exporta o HTML da página para PDF, ele foi feito usando frameworks já consolidados como o flying-saucer e itext. Abaixo segue a lista de dependências necessárias:
| framework | link |
|---|---|
| Flying Saucer | https://code.google.com/p/flying-saucer/ |
| iText | http://itextpdf.com/ |
| Jsoup | http://jsoup.org/ |
| HTML Cleaner | http://htmlcleaner.sourceforge.net/ |
| Apache Batik (exportar SVG) | http://xmlgraphics.apache.org/batik/ |
Para projetos maven depencências necessárias para o componente são mostradas na seção de dependências.
Atributos
| Nome | Valor Padrão | Tipo | Descrição |
|---|---|---|---|
| target | String | Id do componente a ser exportado para PDF | |
| fileName | String | Nome do arquivo PDF que será gerado para download | |
| orientation | portrait | String | Orientação do PDF, deve-se indicar "portrait" para retrato ou "landscape" para paisagem |
Utilização
Para utilizar o component deve-se indicar o “target”, que será o id do componente a ser exportado:
<p:commandButton title="Export PDF" immediate="true" ajax="false" value="Export PDF">
<x:pdfPrinter target="exportTargetId" fileName="File Name" />
</p:commandButton>O componente download pode ser adicionado para gerar uma melhor experiência:
<p:commandButton title="Export PDF" immediate="true" ajax="false" value="Export PDF">
<x:download />
<x:pdfPrinter target="exportTargetId" fileName="File Name" />
</p:commandButton>
Exemplo de exportação de um h:panelGroup:
<p:commandButton title="Export PDF" immediate="true" ajax="false"
value="Export PDF">
<x:download/>
<x:pdfPrinter target="panelExport" fileName="Lorem Ipsum" />
</p:commandButton>
<h:panelGroup id="panelExport" layout="block" style="border: 1px solid black; padding: 10px;">
<h1>Title</h1>
<h2>Subtitle</h2>
<p>
Lorem ipsum dolor sit amet, <span style="color: red;">consectetur adipiscing elit</span>.
Cras at accumsan mauris. Nulla a accumsan nisl. Nam dapibus a velit quis consequat.
Mauris a volutpat sem. Suspendisse semper enim in enim gravida, quis maximus ante lobortis.
</p>
</h:panelGroup>Exportação de gráficos
O pdfPrinter é compatível na exportação de gráficos baseados em SVG, como é o caso do google charts (que também está presente no primefaces-extensions).
Gráficos do próprio primefaces não são compatíveis pois são baseados em canvas.
Customização de estilos
A lib flying-saucer é compatível com a especificação CSS, sendo assim para adicionar os estilos basta adicionar nos estilos CSS.
Lembrando que é possível ainda adicionar o um CSS inline, e indicar o media=print, para que o estilo seja adicionado apenas na impressão, ou media=screen para que seja apenas na tela como mostrado abaixo:
<style media="screen" style="text/css">
.no-screen{display: none;}
</style>
<style media="print" style="text/css">
/* mudar cor do cabeçalho das tabelas (apenas na impressão) */
.ui-state-default {background-color: #e6e6e6 !important;}
.no-print{display: none;}
</style>
<span class="no-screen">Este conteúdo não será exibido na tela, apenas na impressão</span>
<span class="no-print">Este conteúdo não será impresso</span>Xpert-framework
Documentation
- O que é o xpert-framework?
- Dependências
- Configurando o xpert-config.xml
- Classes Utilitárias
- Xpert-Faces
- Introdução
- Conversores
- Componentes JSF
- I18N do Bean validation
- Tratamento de Regra de Negócio com o BusinessException
- Exibindo mensagem com o FacesMessageUtils
- Restrictions
- Consultas dinâmicas com o QueryBuilder
- DAO Genérico - BaseDAO
- DataTable paginado no banco com o LazyDataModelImpl
- Definindo os joins com o JoinBuilder
- Unicidade dos campos com UniqueField
- Criação de relatórios com o FacesJasper
- Artefatos para CRUDs
- Geração de Código (CRUD) com o xpert-maker
- Auditando as entidades com o xpert-audit
- Auditoria de Consultas
- SequenceUpdater - Atualizando as sequences
- Controle de Acesso através do xpert-security
- Autenticação LDAP/ActiveDirectory
- Boas práticas para o mapeamento de entidades
- Possíves problemas ao utilizar o xpert-framework
Criando projeto do archetype
- Introdução
- Arquétipos disponíveis do xpert-framework
- Características de um projeto gerado pelo arquétipo
- Configuração de banco de dados
- Criando um projeto a partir do arquétipo maven
- Estrutura de um projeto gerado a partir do arquétipo maven
Useful links