我们正在使用iText PDFPTable。我们面临的问题是由于以下代码行:
table.setHeaderRows(headerRows);
这段代码在本地环境(在Windows中托管的WAS)中运行良好,但是在开发服务器(在Unix中托管的WAS)中无法正常工作。我们无法弄清楚问题是什么,因为在两种情况下都使用了IE。有人可以回答为什么在开发服务器中出现对齐问题? 添加更多代码...... 方法创建标准表:
public PdfPTable createStandardTable(int columnCount, int headerRows) {
zebraTable = true;
horizontalBorders = false;
PdfPTableEvent tableEvent = new PdfPTableEvent()
{
// begin (another) anonymous inner class extends PdfPTableEvent
@Override
public void tableLayout(PdfPTable table, float[][] width, float[] height,
int headerRows, int rowStart, PdfContentByte[] canvas) {
// code provided by Bruno Lowagie, author of iText, via StackOverflow.
float widths[] = width[0];
float x1 = widths[0];
float x2 = widths[widths.length - 1];
float y = height[height.length - 1];
PdfContentByte cb = canvas[PdfPTable.LINECANVAS];
cb.moveTo(x1, y);
cb.lineTo(x2, y);
cb.setColorStroke(TABLE_BORDER_COLOR);
cb.stroke();
}
// end anonymous inner class extends PdfPTableEvent
};
PdfPTable table = tableCreationHelper(columnCount, headerRows);
table.setTableEvent(tableEvent);
return table;
}
私人助手方法
private PdfPTable tableCreationHelper(int columnCount, int headerRows) {
PdfPTable table = new PdfPTable(columnCount);
table.setSpacingBefore(TABLE_SPACING);
table.setSpacingAfter(TABLE_SPACING);
table.setWidthPercentage(TABLE_WIDTH_PERCENT);
table.setHeaderRows(headerRows);
return table;
}
如果您需要更多信息,请告诉我
非常感谢, 巴布。
答案 0 :(得分:0)
我想出了这个问题。开发服务器有iText版本5.5.0,本地配置为5.5.2。 iText 5.5.0的setHeadersRow函数弄乱了对齐。