我正在使用p:dataExporter导出我的p:dataTable的内容,该内容具有阿拉伯语内容。当我将其导出为Excel时,它可以正常工作,但是如果我尝试将其导出为PDF,则不会显示阿拉伯语内容。 我正在使用iText 2.1.7。
这是我的p:dataTable和p:dataExporter
<p:dataTable id="chequeReport_tbl" value="#{reportsController.listOfChequeReports}" var="chequeReport"
paginator="true" editable="false" rows="10"
tableStyle="width: auto;" style="direction: ltr; text-align: right;margin-top: 5px;margin-bottom:20px"
paginatorTemplate="{Exporters} {CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="10">
<f:facet name="{Exporters}">
<div style="float:right;">
<h:commandLink actionListener="#{reportsController.generateBankChequeReportPDF()}">
<p:graphicImage value="res/images/pdf_2.png" width="12"/>
</h:commandLink>
<h:commandLink>
<p:graphicImage value="res/images/excel.png" width="24"/>
<p:dataExporter type="xls" target="chequeReport_tbl" fileName="chequeReport"/>
</h:commandLink>
</div>
</f:facet>
<p:column headerText="تاريخ الصرف" style="text-align: center">
<h:outputText value="#{chequeReport.exchangeDate}"/>
</p:column>
<p:column headerText="أسم المستفيد" style="text-align: center">
<h:outputText value="#{chequeReport.beneficiaryName}"/>
</p:column>
<p:column headerText="مبلغ الشيك بالدولار" style="text-align: center">
<h:outputText value="#{chequeReport.chequeAmountInDollar}"/>
</p:column>
<p:column headerText="العملة" style="text-align: center">
<h:outputText value="#{chequeReport.currency}"/>
</p:column>
<p:column headerText="قيمة الشيك" style="text-align: center">
<h:outputText value="#{chequeReport.chequeAmount}"/>
</p:column>
<p:column headerText="تاريخ الإصدار" style="text-align: center">
<h:outputText value="#{chequeReport.issuingDate}"/>
</p:column>
<p:column headerText="القطاع الإقتصادي" style="text-align: center">
<h:outputText value="#{chequeReport.financialDep}"/>
</p:column>
<p:column headerText="الفرع" style="text-align: center">
<h:outputText value="#{chequeReport.branch}"/>
</p:column>
<p:column headerText="رقم الحساب" style="text-align: center">
<h:outputText value="#{chequeReport.accountNumber}"/>
</p:column>
<p:column headerText="رقم الهوية" style="text-align: center">
<h:outputText value="#{chequeReport.idNumber}"/>
</p:column>
<p:column headerText="أسم العميل" style="text-align: center">
<h:outputText value="#{chequeReport.customerName}"/>
</p:column>
</p:dataTable>
答案 0 :(得分:1)
有效地,您的问题可以(并且应该已经)分为两个问题,两个问题在stackoverflow中都具有现有的Q / A。
问题1:使用iText时如何在PDF中显示阿拉伯语。
答案1:How to display Arabic in PDF created using iText
问题2:导出为PDF时如何自定义PrimeFaces dataExporter
答案2:How do I customize the PDF from a PrimeFaces p:dataExporter, e.g. page size
组合它们,您就有解决方案了。