原文来自:https://www.cnblogs.com/joann/p/5511905.html
我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar,
其中itextpdf是itext的升级版本,并且itextpdf-5.5.jar以上版本算总页数不需要-1,之前版本必须-1;
jfinal.jar只能用2.0版本,用3.0的会报版本过高;希望能帮到有需要的人
itextpdf-5.5.13.jar 下载地址:http://central.maven.org/maven2/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar
freemarker-2.3.23.jar 下载地址:http://central.maven.org/maven2/org/freemarker/freemarker/2.3.23/freemarker-2.3.23.jar
jfinal-2.0.jar 下载地址:http://central.maven.org/maven2/com/jfinal/jfinal/2.0/jfinal-2.0.jar
xmlworker-5.5.11.jar 下载地址:http://central.maven.org/maven2/com/itextpdf/tool/xmlworker/5.5.11/xmlworker-5.5.11.jar
itext-asian-5.2.0.jar 下载地址:http://central.maven.org/maven2/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.StringWriter;
import java.nio.charset.Charset;
import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;
import com.jfinal.log.Logger;
import com.jfinal.render.FreeMarkerRender;
import freemarker.template.Template;
public class PdfKit {
private static final Logger log = Logger.getLogger(PdfKit.class);
/**
* 导出pdf
*
* @param templateView-freemarker模板相对路径
* @param os-输出流
* @param model-模板所需要的数据
* @throws Exception
*/
public static void export(String templateView,Object model,String temp) throws Exception {
log.info("生成的PDF地址:"+temp);
FileOutputStream tempOs = new FileOutputStream(temp);
Template template = FreeMarkerRender.getConfiguration().getTemplate(templateView);
StringWriter res