PrimeFaces dataExport 使用惰性模型返回空 PDF

问题描述 投票:0回答:1

我使用的是prime faces 13,java 21和

com.lowgie.itext
v2.1.7(这是prime faces支持的最后一个)。

问题是,我可以将我的数据正确导入到其他格式,例如

cvs
xls
,但是如果能够选择将一小部分用户导出为 pdf 也可能很棒。

当我将数据导出为 pdf 文件时,下载了 pdf,但它是空的(0 字节文件),并且没有错误。

这是我的代码:

<p:commandButton value="Export">
   <p:dataExporter type="pdf" target="table-id" fileName="myExportedPdf"/>
</p:commandButton>
                        
...

<p:dataTable id="table-id" var="data" value="#{ctrl.model}" reflow="true"
 multiViewState="true" draggableColumns="true" selection="#{ctrl.selection}"
 rowKey="#{data.id}" disabledSelection="#{data.disableSel}" paginator="true"
 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} 
 {PageLinks}   {NextPageLink} {LastPageLink}" rowsPerPageTemplate="10,25,50"
 rows="10" rowSelectMode="add" paginatorPosition="bottom" lazy="true"
 sortBy="#{crtl.defaultSort}" stripedRows="true"
>

我已经在prime faces的官方文档以及showcase官方示例中搜索了这个。

由于我能够以其他格式导出数据,我认为这可能是 itext 依赖项的问题(它已过时),但如果我升级该依赖项,我会收到 ClassNotFound 运行时错误,因为导入路径从

com.lowgie
com.itext

可能是配置问题?或者不再可以将数据导出为 pdf?

primefaces itext primefaces-datatable java-21 primefaces-dataexporter
1个回答
0
投票

我终于得到答案了。 PrimeFaces 在其较新版本中不使用 itext,您应该删除所有 itext 依赖项并使用

openpdf
代替:

查看 git 存储库 或从 maven 中央存储库下载 jar

依赖性:

<!-- https://mvnrepository.com/artifact/com.github.librepdf/openpdf -->
<dependency>
  <groupId>com.github.librepdf</groupId>
  <artifactId>openpdf</artifactId>
  <version>1.3.40</version>
</dependency>

我从 showcase git 存储库获取此依赖项。如果您需要将数据导出为 MS 文件,您可以使用

poi
来完成,请参阅官方 pom 文件以获取完整的依赖项列表。

© www.soinside.com 2019 - 2024. All rights reserved.