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