java导出pdf文件(插入图片及信息)

//需下载iText.jar及iTextAsian.jar包
//生成ean13格式或ean8格式条形码PDF打印
 public void getExportPDF(List<Object> list, OutputStream os) throws MalformedURLException, IOException, DocumentException{
 try {
 //itext在pdf中输入中文字体(中文楷体)时:
 bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
 // 设置之纸张为A4纸,左右上下边距全部为5,  
 document = new Document(PageSize.A4, 50, 50, 50, 50);
 // 构造好的pdf文件输出位置
 PdfWriter pdf = PdfWriter.getInstance(document, os);
 } catch (DocumentException e) {
 e.printStackTrace();
 } catch (IOException e) {
 e.printStackTrace();
 }
 //生成PDF页脚
 HeaderFooter footer = null;
 HeaderFooter header = null;
 //页眉信息
 String headerStr = "此处为页眉";
 //生成PDF页眉
 header=new HeaderFooter(new Phrase(new Paragraph(headerStr, new com.lowagie.text.Font(bfChinese))),false); 
 //生成PDF页脚,第多少页
 footer=new HeaderFooter(new Phrase(" 第 ", new com.lowagie.text.Font(bfChinese)),new Phrase(" 页", new com.lowagie.text.Font(bfChinese)));
 //0居左1居中2居右
 header.setAlignment(0);
 document.setHeader(header);
 footer.setBorder(Rectangle.NO_BORDER);
 footer.setAlignment(1);
 document.setFooter(footer);
 // 打开文件
 document.open();
 //创建表格
 PdfPTable table = new PdfPTable(2);//两列
 table.setWidthPercentage(100);
 //传入的对象信息
 count = list.size();
 //避免因为最后一行数据由于不能满足总列数而导致itext自动将其去掉,而生成一些多余的数
 int column = 2;
 int persons = count;
 int yushu = persons % 2;
 int tmppersons = persons + (column - yushu);  
 String barCodeString = "";
 String barCode = "";
 //对象信息输入pdf文件
 for (int i = 0; i < tmppersons; i++) {
 if (i < persons) {
 //构造个两列一行的表格
 PdfPTable mytable = new PdfPTable(2);
                                //插入图片
 Image image = Image.getInstance("image路径");
 mytable.addCell(image);
 mytable.setWidthPercentage(80);
 String cntext = "测试";
 mess = new Paragraph(cntext, new com.lowagie.text.Font(bfChinese,11));  
 //第二列放文字信息  
 mytable.addCell(mess);
 //在单元格中放置构造好的一个表格  
 table.addCell(mytable);
 } else {  
 //避免因为最后一行数据由于不能满足总列数而导致itext自动将其去掉,不知道有没有其他方法,目前用多余的空格填充  
 table.addCell(" ");  
 }  
 }  
 document.add(table);
 document.close();
 }


转载于:https://my.oschina.net/bsnfei/blog/60545

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值