Java利用iText画PDF

效果

在这里插入图片描述

功能

  1. 设置页面大小
  2. 设置字体
  3. 设置标题
  4. 画table

代码

Document document = new Document();
			// 页面大小
			Rectangle rec = new Rectangle(PageSize.A4.getHeight(), PageSize.A4.getWidth());
			rec.rotate();
			document.setPageSize(rec);
			
			// 创建文件存放的文件夹
			String formName = "资产验收单";
			String sap = File.separator;
			tempDir = sap+"sign"+sap+"assetPdf";
			tempDir +=sap+"资产验收单"+sap+new SimpleDateFormat("yyyyMMdd").format(new Date());
			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
			// 拼接新的文件名
			String destFileName = formName + ".pdf";  
			File destFile = new File(tempDir,destFileName);
			// 判断是否有文件夹,没有就建一个
			if (!destFile.getParentFile().exists()) {
				destFile.getParentFile().mkdirs();
			}
			
			// 为该Document创建应该Writer实例
			PdfWriter writer = PdfWriter.getInstance(document, 
					new FileOutputStream(destFile.getAbsoluteFile()));
			document.open();

			// 字体,使用本机的宋体  
			String font_cn = InvoiceProcessServiceImpl.class.getResource("simsun.ttc").toString()+",0"; 
			BaseFont bf = BaseFont.createFont(font_cn,   
					BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 
		    Font fontChinese = new Font(bf, 12, Font.NORMAL);
			// 设置标题
			Font fontChineseTitle = new Font(bf, 16, Font.BOLD);
			Paragraph title = new Paragraph("江苏实达迪美数据处理有限公司", fontChineseTitle);
			title.setAlignment(Element.ALIGN_CENTER);
			title.setLeading(1f); // 设置上面空白宽度
			document.add(title);
				
			// 设置表单名称
			Paragraph formTitle = new Paragraph(formName, fontChineseTitle);
			formTitle.setSpacingBefore(2f);
			formTitle.setAlignment(Element.ALIGN_CENTER);
			document.add(formTitle);
				
			Font fontSettleCycle = new Font(bf, 12, Font.BOLD);
			// 设置请购日期
			Paragraph settleCycle = new Paragraph("验收日期:" + "1111", fontSettleCycle);
			settleCycle.setSpacingBefore(1f);
			settleCycle.setSpacingAfter(2f);
			settleCycle.setAlignment(Element.ALIGN_RIGHT);
			document.add(settleCycle);
			
			// 第1个table
			PdfPTable table1 = new PdfPTable(4);
			table1.setWidthPercentage(100); // Width 100%
			float[] columnWidths1 = { 0.66f,2f,0.67f,0.67f};
			table1.setWidths(columnWidths1);
			table1.addCell(getPDFCell("资产名称", fontChinese));
			table1.addCell(getPDFCell("12121211", fontChinese));
			table1.addCell(getPDFCell("规格型号", fontChinese));
			table1.addCell(getPDFCell("12121211", fontChinese));
			document.add(table1);
			
			// 第2个table
			PdfPTable table2 = new PdfPTable(6);
			table2.setWidthPercentage(100); // Width 100%
			float[] columnWidths2 = { 0.66f,1f,0.5f,0.5f,0.67f,0.67f};
			table2.setWidths(columnWidths2);
			table2.addCell(getPDFCell("资产编号", fontChinese));
			table2.addCell(getPDFCell("12121211", fontChinese));
			table2.addCell(getPDFCell("数量", fontChinese));
			table2.addCell(getPDFCell("12121211", fontChinese));
			table2.addCell(getPDFCell("总金额(元)", fontChinese));
			table2.addCell(getPDFCell("12121211", fontChinese));
			document.add(table2);
			
			// 第3个table
			PdfPTable table3 = new PdfPTable(2);
			table3.setWidthPercentage(100); // Width 100%
			float[] columnWidths3 = { 2.66f,1.34f};
			table3.setWidths(columnWidths3);
			table3.addCell(getPDFCell("验收内容(功能、指标)", fontChinese));
			table3.addCell(getPDFCell("验收情况", fontChinese));
			document.add(table3);
			
			// 第4个table
			PdfPTable table4 = new PdfPTable(2);
			table4.setWidthPercentage(100); // Width 100%
			float[] columnWidths4 = { 2.66f,1.34f};
			table4.setWidths(columnWidths4);
			table4.addCell(getPDFCellBiggest("过", fontChinese));
			table4.addCell(getPDFCellBiggest("ok", fontChinese));
			document.add(table4);
			
			// 第5个table
			PdfPTable table5 = new PdfPTable(4);
			table5.setWidthPercentage(100); // Width 100%
			float[] columnWidths5 = { 0.66f,1.34f,0.66f,1.34f};
			table5.setWidths(columnWidths5);
			table5.addCell(getPDFCellBig("验收经办人", fontChinese));
			table5.addCell(getPDFCellBig("1010", fontChinese));
			table5.addCell(getPDFCellBig("资产保管人", fontChinese));
			table5.addCell(getPDFCellBig("1010", fontChinese));
			document.add(table5);
			
			// 第6个table
			PdfPTable table6 = new PdfPTable(2);
			table6.setWidthPercentage(100); // Width 100%
		    float[] columnWidths6 = { 0.66f, 3.34f };
			table6.setWidths(columnWidths6);
			table6.addCell(getPDFCellBigest("委外开发项目评审小组", fontChinese));
			table6.addCell(getPDFCellBigest("1010", fontChinese));
			document.add(table6);
		
			// 第7个table
			PdfPTable table7 = new PdfPTable(6);
			table7.setWidthPercentage(100); // Width 100%
			float[] columnWidths7 = { 0.66f, 0.7f,0.66f,0.66f,0.66f,0.66f };
			table7.setWidths(columnWidths7);
			PdfPCell cell7 = new PdfPCell(getPDFCell("部门经理", fontChinese));
			cell7.setMinimumHeight(35f); 
			table7.addCell(cell7);
			cell7 = new PdfPCell(getPDFCell("", fontChinese));
			table7.addCell(cell7);
			cell7 = new PdfPCell(getPDFCell("分管领导", fontChinese));
			cell7.setMinimumHeight(35f); 
			table7.addCell(cell7);
			cell7 = new PdfPCell(getPDFCell("", fontChinese));
			table7.addCell(cell7);
			cell7 = new PdfPCell(getPDFCell("综合管理部经理", fontChinese));
			cell7.setMinimumHeight(35f); 
			table7.addCell(cell7);
			cell7 = new PdfPCell(getPDFCell("", fontChinese));
			table7.addCell(cell7);
						
			document.add(table7);	
			
			document.close();
			writer.close();
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值