首先编辑一个类 实现AbstractPdfStamperView 这个 要maven依赖可以自己找
package com.yiexpress.services.ewe.finance;
import java.net.URLEncoder;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import com.itextpdf.text.pdf.PdfStamper;
import com.yiexpress.core.utils.FormUtils;
import com.yiexpress.services.order.AbstractPdfStamperView;
@Component("View ")
public class View extends AbstractPdfStamperView{
@PostConstruct
private void setExpressBillTemplate() {
setUrl("classpath:View .pdf");
}
@Override
protected void mergePdfDocument(Map<String, Object> model,
PdfStamper stamper, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String pdfName = (String) model.get("pdfName");
response.setHeader("Content-Type","application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=" + pdfName+".pdf");
FormUtils.renderInvoicePdfView(stamper, model);
}
}
并编写 生成的方法
public static void renderInvoicePdfView(PdfStamper stamper, Map<String, Object> model) {
AcroFields form = stamper.getAcroFields();
try {
form.setField("currency","All in ");
} catch (Exception e) {
}
stamper.setFormFlattening(true);
}
然后调用 在controller中
@Resource(name = "invoiceViewPay")
private InvoiceViewPay invoiceViewPay;
//生成加载视图
ModelAndView mv = new ModelAndView(invoiceViewPay);;
mv.addObject("pdfName", pdfName);
mv.addObject("weightCount",weightCount);
mv.addObject("bill", bill);
mv.addObject("rops",rops);
mv.addObject("customer", customerBasic);
mv.addObject("createdTs", createdTs);
return mv;
以上是在controller的方法写 的 返回是ModelAndView
接着自己适用软件编写pdf模板
Adobe Acrobat XI Pro
适用文本写死重要信息,适用表单填写 你要注入的信息