我正在使用 dataexporter 创建数据表的 pdf,在我的数据表中,列的标题是集中的,但是相同列的 pdf 版本是向左对齐的。如何使 pdf 的列像数据表一样集中。
问问题
3926 次
2 回答
2
我使用该解决方案自定义PDFExporter,效果很好,感谢您的关注。以下是我的做法:
我的自定义类:
public class CustomPDFExporter extends PDFExporter {
@Override
protected void addColumnFacets(DataTable table, PdfPTable pdfTable, ColumnType columnType) {
for(UIColumn col : table.getColumns()) {
if(!col.isRendered()) {
continue;
}
if(col instanceof DynamicColumn) {
((DynamicColumn) col).applyModel();
}
if(col.isExportable()) {
addHeaderValue(pdfTable, col.getFacet(columnType.facet()), FontFactory.getFont(FontFactory.TIMES, "iso-8859-1", Font.DEFAULTSIZE, Font.BOLD));
}
}
}
protected void addHeaderValue(PdfPTable pdfTable, UIComponent component, Font font) {
String value = component == null ? "" : exportValue(FacesContext.getCurrentInstance(), component);
PdfPCell cell = new PdfPCell(new Paragraph(value, font));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
pdfTable.addCell(cell);
}
}
豆:
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();
}
在我的页面中,我添加了:
<h:commandLink action="#{boxBean.exportPDF(boxTable, 'relatorio_caixas')}" >
<p:graphicImage value="/resources/img/pdf.png"/>
</h:commandLink>
于 2013-05-16T14:22:19.890 回答
0
好吧,您的答案已经在 stackoverflow 上:使用 Primefaces dataExporter 更改生成 pdf 的样式
也看看这里: http: //www.primefaces.org/showcase/ui/exporterProcessor.jsf如何使用 Primefaces 的 exportProcessor。
简而言之,您需要创建自己的处理器来创建自定义 PDF
于 2013-05-16T09:28:05.630 回答