Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Primefaces dataExporter生成pdf时更改样式_Primefaces - Fatal编程技术网

使用Primefaces dataExporter生成pdf时更改样式

使用Primefaces dataExporter生成pdf时更改样式,primefaces,Primefaces,我正在使用PrimeFacesDataExporter从数据表生成pdf。生成的pdf具有相同宽度的所有列。我正在寻找一种在后处理器/预处理器函数上更改表样式的方法。在生成pdf之前,我可以使用setHtmlStyleClass方法更改某些内容吗?我试图使用它,但没有成功。我想我没有正确地理解它 public void预处理PDF(对象文档)抛出IOException、BadElementException、DocumentException{ 文件pdf=(文件)文件; pdf.setHtml

我正在使用PrimeFacesDataExporter从数据表生成pdf。生成的pdf具有相同宽度的所有列。我正在寻找一种在后处理器/预处理器函数上更改表样式的方法。在生成pdf之前,我可以使用setHtmlStyleClass方法更改某些内容吗?我试图使用它,但没有成功。我想我没有正确地理解它

public void预处理PDF(对象文档)抛出IOException、BadElementException、DocumentException{
文件pdf=(文件)文件;
pdf.setHtmlStyleClass(“报告类”);
...
}

如果我可以使用该方法,我可以在哪里定义reportClass?它是浏览器上页面的css类吗?

如果查看导出方法中的情况,则无法操作PDF中的数据表

首先创建一个
com.itextpdf.text.Document
对象

Document Document=新文档(PageSize.A4.rotate());
然后,在将表添加到PDF文档之前,调用预处理器方法传递文档

if(预处理器!=null){
调用(facesContext.getELContext(),新对象[]{document});
}
然后创建
com.itextpdf.text.pdf.PdfPTable
。exportPDFTable方法不进行任何特殊格式化

PdfPTable pdfTable=exportPDFTable(表,不包括列);
文件。添加(pdfTable);
现在调用后处理方法并再次传递文档。在这里,我认为您可以从Document对象访问和更改PdfPTable,但从iText api来看,您似乎无法访问和更改PdfPTable

if(后处理器!=null){
调用(facesContext.getELContext(),新对象[]{document});
}

因此,如果您想要一个样式化的PDF表格,您必须实现自己的PDF导出。希望了解PrimeFaces PDFExporter是如何完成的将对您有所帮助。

感谢Mark提供详细信息。我将考虑实现我自己的PDF导出。