Reputation:
How to change the size of column in DataExport for PDF
i have create DataTable using following code
<p:dataTable id="tb1" var="user" value="#{userManagedBean.searchUsersResults}"
selection="#{userManagedBean.selectedUser}" selectionMode="single"
dynamic="true"
onRowSelectUpdate="userUpdateForm"
onRowUnselectUpdate="userUpdateForm"
rowSelectListener="#{userManagedBean.onUserSelect}"
rowUnselectListener="#{userManagedBean.onUserUnselect}"
paginator="true" rows="5" style="width: 700" >
<p:column sortBy="#{user.userId}" filterBy="#{user.userId}" >
<f:facet name="header">
<h:outputText value="Id" />
</f:facet>
<h:outputText value="#{user.userId}" />
</p:column>
<p:column sortBy="#{user.username}" filterBy="#{user.username}" >
<f:facet name="header">
<h:outputText value="Name" />
</f:facet>
<h:outputText value="#{user.username}" />
</p:column>
<p:column sortBy="#{user.emailId}" filterBy="#{user.emailId}">
<f:facet name="header">
<h:outputText value="Email" />
</f:facet>
<h:outputText value="#{user.emailId}" />
</p:column>
<p:column parser="date" sortBy="#{user.dob}" filterBy="#{user.dob}">
<f:facet name="header">
<h:outputText value="DOB" />
</f:facet>
<h:outputText value="#{user.dob}" >
<f:convertDateTime pattern="MM/dd/yyyy" />
</h:outputText>
</p:column>
</p:dataTable>
For exporting pdf
<h:commandLink>
<p:graphicImage value="/images/pdf.png" />
<p:dataExporter type="pdf" target="j_idt6:tb1" fileName="cars"/>
</h:commandLink>
In pdf it showing all column having same width but I need as i defined.
Upvotes: 0
Views: 4536
Reputation: 69
fist you must set up a custom Exporter and for Pdfs a Custom PdfExporter in the export method after the pdf is generated call pdf.setWidths(new float[]{1,1,1,2) This would give 20% to each of the first 3 columns and 60% to the final column
Upvotes: 1
Reputation: 716
You can use preProcessor
and postProcessor
atrributes in p:dataExporter
tag to customize your document.
On PrimeFaces showcase you can view example.
Upvotes: 0