我正在实现一个自定义的pdf导出器,但我需要将视图中的数据表传递给我的backingbean,但我不知道如何做到这一点。
在视图中,我会有一个命令链接,看起来像这样:
<h:commandLink action="#{procesos.exportPDF( mytable , 'procesos')}">
</h:commandLink>
这是接收DataTable作为参数的方法:
public void exportPDF(DataTable table, String filename) throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
Exporter exporter = new CustomPDFExporter();
exporter.export(context, table, filename, false, false, "iso-8859-1", null, null);
context.responseComplete();
}
无论如何。。我想做的是用custompdfexporter修改列宽,因为dataexporter和primefaces的exporter扩展不允许该功能,所以如果有人知道或有一个自定义的pdf导出器允许这样做,请显示一点(更好的是全部)代码:)!
谢谢。
我也遇到了同样的问题。我没有直接经过桌子。我刚刚传递了表单和表的ID,并使用了findComponent
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot viewRoot = context.getViewRoot();
// find table by form- and table-id
UIComponent component = viewRoot.findComponent(formId).findComponent(tableId);
DataTable table = (DataTable) component;