如何更改DataExport for PDF中的列大小(具有相同宽度的列)

时间:2012-08-09 06:38:16

标签: java jsf primefaces export itext

如何更改DataExport for PDF中列的大小

我使用以下代码创建了DataTable

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

用于导出pdf

    <h:commandLink>  
        <p:graphicImage value="/images/pdf.png" />  
        <p:dataExporter type="pdf" target="j_idt6:tb1" fileName="cars"/>  
    </h:commandLink> 

在pdf中,它显示了所有具有相同宽度的列,但我需要按照我的定义。

2 个答案:

答案 0 :(得分:1)

首先,您必须设置自定义导出器和Pdfs自定义PdfExporter 在生成pdf之后的export方法中调用pdf.setWidths(new float [] {1,1,1,2) 这将给前3列中的每一列提供20%,给最后一列提供60%

答案 1 :(得分:0)

您可以使用preProcessor标记中的postProcessorp:dataExporter属性来自定义您的文档。

PrimeFaces showcase上,您可以查看示例。