java 下载pdf关于 第一页 公司名称不同--每个相同公司显示一页,不同公司显示第二页

java 下载pdf关于 第一页 公司名称不同–每个相同公司显示一页,不同公司显示第二页

原图如下:

java 下载pdf关于 第一页 公司名称不同--每个相同公司显示一页,不同公司显示第二页_第1张图片

想要结果如下:
第一页
java 下载pdf关于 第一页 公司名称不同--每个相同公司显示一页,不同公司显示第二页_第2张图片
第二页
java 下载pdf关于 第一页 公司名称不同--每个相同公司显示一页,不同公司显示第二页_第3张图片
第三页
java 下载pdf关于 第一页 公司名称不同--每个相同公司显示一页,不同公司显示第二页_第4张图片

java

table10.deleteBodyRows();// 释放内存中存留的内容。

PdfPTable table10 = new PdfPTable(4);
	int width10[] = {500,150,150,400};
	table10.setWidths(width10);

	String[] tableHeader10 = new String[]{"公司名称","专票数量","普票数量","发票号码总金额"};
	for (int i = 0; i < 4; i++) {
			table10.addCell(ZynsunUtils.createBluePdfpCell(tableHeader10[i], font));
		}





StringBuffer sbCustNameCn= new StringBuffer();// 下单据 公司名称相同显示一页,不同显示第二页
for(int i=0; i<arbillmainList.size();i++){

		String sbName= arbillmainList.get(i).getName();
		if(i==0){
			sbName.append(arbillmainList.get(i).getName());
				}

	//公司名称不同
	if(!arbillmainList.get(i).getName().equals(sbName.toString())){
			sbName.setLength(0);//清空上一个公司名称
			sbName.append(arbillmainList.get(i).getName());
		
			document.add(table10);
			document.newPage();
			table10.deleteBodyRows();// 释放内存中存留的内容。
		     //datatable.setSkipFirstHeader(true); //防止释放后一页出现两次表头= 备注,有空在研究
			
			table10.addCell();
	
	}else{//公司名称相同
		table10.addCell();
	}
	
	if(i==arbillmainList.size()-1){//最后一个
		document.add(table10);
	      document.newPage();
	}




	document.close();
	writer.close();




你可能感兴趣的:(pdf,java)