user1506047
user1506047

Reputation:

How to change the size of column in DataExport for PDF(column having same width)

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

Answers (2)

user2225399
user2225399

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

tomi
tomi

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

Related Questions