项目中需要把图片和中文导出成pdf格式
实现方式如下:
1.页面jsp+js
2.后台java(spring+springMVC+mybatis,mysql)
3.Js把参数传到后台,用java实现导出pdf文档需求
一.首先导入相应的jar包
maven---->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.3</version>
</dependency>
<dependency>
二.写java后台逻辑部分
//1.新建document对象
Document document = new Document(PageSize.A4.rotate(), 36, 36, 24, 36);
//2.构造好pdf文件输出位置(文档保存到D盘)
PdfWriter.getInstance(document, new FileOutputStream("D:\\PdfTest.pdf"));
//如果把pdf文件放在项目中获取方法如下
// 构造好的pdf文件输出位置"/resourcesfile/pdf/PdfTest.pdf"表示在项目中的位置
//String path = "/resourcesfile/pdf/PdfTest.pdf";
//建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。
//PdfWriter.getInstance(document,new FileOutputStream(new File(request.getSession().getServletContext().getRealPath("/") + path)));
//3.打开文件(注:只有document打开后才能往文件写入信息)
documen.open();
//插入部分 ,获取相应的信息(文字,图片)
.....
....根据自己的情况获取相应的内容
....
//中文支持,需要引入itext-asian.jar
BaseFont bfChinese = BaseFont.createFont( "STSongStd-Light" , "UniGB-UCS2-H" , false );
Font fontChinese = new Font(bfChinese,10,Font.NORMAL,BaseColor.BLACK);
Paragraph pf = new Paragraph();
pf.add(new Paragraph(“这里是传入的中文内容”));
document.add(pf);
//图片部分
//创建图片对象,加入Image中,此处写入图片路径
Image img = Image.getInstance(“这里是传入的图片的路径”);
img.setAlignment(Image.LEFT | Image.LEFT);
img.setBorder(Image.BOX);
img.setBorderWidth(10);
img.setBorderColor(BaseColor.WHITE);
img.scaleToFit(1500, 200);//大小
ocument.add(img);
//关闭文档对象,注:当文档对象真正关闭后,数据才会写入文件中。
document.close();