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

10年前
//需下载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();  }