Hii伙计!! 下面是我将数据库导出到excel文件的代码。现在根据我的要求,我想在页面顶部添加公司的标题图片.plz人帮助我并指导我完成任务。谢谢提前。谢谢是我的代码...
Document document = new Document(PageSize.A2);
PdfWriter.getInstance(document, new FileOutputStream("d:/".concat(datum1).concat(" ").concat("To").concat(" ").concat(datum2).concat(".pdf")));
document.open();
Image logo = Image.getInstance("d:/header.png");
logo.setAlignment(Image.MIDDLE);
logo.scaleAbsoluteHeight(20);
logo.scaleAbsoluteWidth(20);
logo.scalePercent(100);
Chunk chunk = new Chunk(logo, 0, -45);
HeaderFooter header = new HeaderFooter(new Phrase(chunk), false);
header.setAlignment(Element.ALIGN_CENTER);
header.setBorder(Rectangle.NO_BORDER);
document.setHeader(header);
PdfPTable table = new PdfPTable(9);
table.setWidthPercentage(110);
table.addCell("calldate");
table.addCell("src");
table.addCell("dst");
table.addCell("dstchannel");
table.addCell("lastapp");
table.addCell("duration");
table.addCell("disposition");
table.addCell("amaflags");
table.addCell("cdrcost");
String strQuery = "";
ResultSet rs = null;
conexion conexiondb = new conexion();
conexiondb.Conectar();
strQuery = "SELECT * FROM cdrcost where date(calldate) between '" + datum1 + "' and '" + datum2 + "'";
// strQuery = "SELECT * FROM cdrcost where date(calldate) between '2011-09-01' and '2012-01-01'";
rs = conexiondb.Consulta(strQuery);
while (rs.next()) {
table.addCell(rs.getString("calldate"));
table.addCell(rs.getString("src"));
table.addCell(rs.getString("dst"));
table.addCell(rs.getString("dstchannel"));
table.addCell(rs.getString("lastapp"));
table.addCell(rs.getString("duration"));
table.addCell(rs.getString("disposition"));
table.addCell(rs.getString("amaflags"));
table.addCell(rs.getString("cdrcost"));
}
document.add(table);
document.close();
答案 0 :(得分:0)
setHeader()
已从iText中移除。请不要使用它!由于您似乎不理解之前在SO上给出的答案,让我再说一遍:
您需要创建PdfPageEvent
实现,例如通过扩展覆盖PdfPageEventHelper
方法的onEndPage()
类。执行此操作时,请考虑以下警告:
onStartPage()
添加内容Document
对象添加任何内容,x = 0; y = 0
。添加页脚时需要考虑到这一点。页脚的y值低于标题的y值。在您的代码中,您需要在打开文档之前使用setPageEvent()
对象上的PdfWriter
方法。每次页面完成时,您调用的onEndPage()
方法都会被调用,因此您需要使用PdfContentByte.addImage()
添加图像。如果您希望图像位于页面顶部,则需要询问Document
的尺寸,并相应地设置Image对象的绝对位置。
如果您不理解这个详细的解释,请阅读我的book或聘请iText开发人员为您完成此任务。