创建PDF模板,java添加内容、导出下载PDF 本⽂主要内容是:⽤java在pdf模板中加⼊数据,图⽚。
废话不多说,举个⾮常简单的例⼦:
⾸先创建word⽂档,导出PDF。
⽤软件adobe acrobat打开,操作步骤如图:
在指定位置添加⽂本域,保存退出。pdf模板创建完成,我们保存到 E:盘,起名叫练习。接下来是java内容。
在l⽂件加⼊,
<!-- itext 图⽚转pdf -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>
在Controller层创建,节约时间直接附上代码
package ller;
import java.io.OutputStream;
早睡早起英文import java.io.UnsupportedEncodingException;
import java.URLEncoder;
SimpleDateFormat;明媚
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.rvlet.http.HttpServletRequest;
import javax.rvlet.http.HttpServletRespon;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
中式英语搞笑
import Image;
import Rectangle;
import pdf.AcroFields;
import pdf.BaFont;
import pdf.PdfContentByte;
import pdf.PdfReader;
import pdf.PdfStamper;
@RestController
public class PdfController {
/**
* 导出pdf
* @author Changhai
* @param respon
* @return
* @throws UnsupportedEncodingException
论文选题怎么选*/
@RequestMapping(value={"/exportpdf"})
public String exportPdf(HttpServletRespon respon) throws UnsupportedEncodingException { // 指定解析器
System.tProperty("l.parrs.DocumentBuilderFactory",
"com.s.internal.jaxp.DocumentBuilderFactoryImpl");
//String path = Session().getServletContext().getRealPath("/upload/");
String filename="练习.pdf";
String path="e:/";
respon.tContentType("application/pdf");
我要嫁给你respon.tHeader("Content-Disposition", "attachment;fileName="
+ de(filename, "UTF-8"));
OutputStream os = null;
PdfStamper ps = null;
PdfReader reader = null;
try {
os = OutputStream();
// 2 读⼊pdf表单
reader = new PdfReader(path+ "/"+filename);
/
/ 3 根据表单⽣成⼀个新的pdf
ps = new PdfStamper(reader, os);
// 4 获取pdf表单
AcroFields form = ps.getAcroFields();
// 5给表单添加中⽂字体这⾥采⽤系统字体。不设置的话,中⽂可能⽆法显⽰
BaFont bf = ateFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",
BaFont.IDENTITY_H, BaFont.EMBEDDED);
form.addSubstitutionFont(bf);
// 6查询数据================================================
Map<String, Object> data = new HashMap<String, Object>();
data.put("name", "⼩帅哥");
data.put("like", "⼤美⼥");
// 7遍历data 给pdf表单表格赋值
for (String key : data.keySet()) {
form.tField((key).toString());
脚臭是脚气吗}
ps.tFormFlattening(true);
//-----------------------------pdf 添加图⽚----------------------------------
// 通过域名获取所在页和坐标,左下⾓为起点
System.out.println("pdf 添加图⽚");
String imgpath="e:/美⼥.png";
int pageNo = FieldPositions("img").get(0).page;
Rectangle signRect = FieldPositions("img").get(0).position;
双创>猎人笔记好词好句
float x = Left();
float y = Bottom();
// 读图⽚
Image image = Instance(imgpath);
// 获取操作的页⾯
PdfContentByte under = ps.getOverContent(pageNo);
// 根据域的⼤⼩缩放图⽚
image.Width(), Height());
// 添加图⽚
image.tAbsolutePosition(x, y);
under.addImage(image);
//-------------------------------------------------------------
System.out.println("===============PDF导出成功=============");
} catch (Exception e) {
System.out.println("===============PDF导出失败=============");
e.printStackTrace();
} finally {
try {
ps.clo();
reader.clo();
os.clo();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}
在浏览器上访问
www.localhost:8080/exportpdf
好了 pdf下载成功
效果图:
感谢您的阅读