资源简介
通过java代码先生成html,然后再将html转换成所需要的pdf文件,并加盖印章。
代码片段和文件信息
package com.pdf;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.baseFont;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class PdfHandler {
private static final String CONTRACT = “resource/contract/“;//合同文件存储路径
private static final String TEMPLATE = “resource/templates/“;//模板存储路径
private static final String PDFNAME = “pdfDemo“;//pdf文件名
private static final String HTMLNAME = “pdfDemo“;//html文件名
public static void contractHandler(String templateName
Mapject> paramMap) throws Exception{
// 获取本地模板存储路径、合同文件存储路径
String templatePath = TEMPLATE;
String contractPath = CONTRACT;
// 组装html和pdf合同的全路径URL
String localHtmlUrl = contractPath + HTMLNAME + “.html“;
String localPdfPath = contractPath + “/“;
// 判断本地路径是否存在如果不存在则创建
File localFile = new File(localPdfPath);
if (!localFile.exists()) {
localFile.mkdirs();
}
String localPdfUrl = localFile + “/“ + PDFNAME + “.pdf“;
templateName=templateName+“.ftl“;
htmHandler(templatePath templateName localHtmlUrl paramMap);// 生成html合同
pdfHandler(localHtmlUrl localPdfUrl);// 根据html合同生成pdf合同
deleteFile(localHtmlUrl);// 删除html格式合同
System.out.println(“PDF生成成功“);
}
/**
* 生成html格式合同
*/
private static void htmHandler(String templatePath String templateName
String htmUrl Mapject> paramMap) throws Exception {
Configuration cfg = new Configuration();
cfg.setDefaultEncoding(“UTF-8“);
cfg.setDirectoryForTemplateLoading(new File(templatePath));
Template template = cfg.getTemplate(templateName);
File outHtmFile = new File(htmUrl);
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(outHtmFile)));
template.process(paramMap out);
out.close();
}
/**
* 生成pdf格式合同
*/
private static void pdfHandler(String htmUrl String pdfUrl)
throws DocumentException IOException {
File htmFile = new File(htmUrl);
File pdfFile = new File(pdfUrl);
String url = htmFile.toURI().toURL().toString();
OutputStream os = new FileOutputStream(pdfFile);
org.xhtmlrenderer.pdf.ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
org.xhtmlrenderer.pdf.ITextFontResolver fontResolver = renderer
.getFontResolver();
// 解决中文支持问题
fontResolver.addFont(TEMPLATE+“simsun.ttc“
baseFont.IDENTITY_H baseFont.NOT_embedDED);
renderer.layout();
renderer.createPDF(os);
os.close();
}
/**
* 删除文件
*/
private static void deleteFile(String fileUrl) {
File file = new File(fileUrl);
file.delete();
}
public s
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 537 2017-03-24 11:45 PdfDemo\.classpath
文件 383 2017-03-24 10:59 PdfDemo\.project
文件 598 2017-03-24 10:59 PdfDemo\.settings\org.eclipse.jdt.core.prefs
文件 5679 2017-03-28 16:37 PdfDemo\bin\com\pdf\PdfHandler.class
文件 37329 2017-03-28 16:31 PdfDemo\bin\contract\images\123.jpg
文件 47960 2017-03-28 16:35 PdfDemo\bin\contract\pdfDemo.pdf
文件 2769 2017-03-24 11:18 PdfDemo\bin\templates\101.ftl
文件 2847 2017-03-24 11:18 PdfDemo\bin\templates\102.ftl
文件 2615 2017-03-24 11:18 PdfDemo\bin\templates\104.ftl
文件 2425 2017-03-24 11:18 PdfDemo\bin\templates\106.ftl
文件 1957 2017-03-24 11:43 PdfDemo\bin\templates\201.ftl
文件 2929 2017-03-24 11:18 PdfDemo\bin\templates\202.ftl
文件 2698 2017-03-24 11:18 PdfDemo\bin\templates\204.ftl
文件 10512288 2017-03-24 11:18 PdfDemo\bin\templates\simsun.ttc
文件 1169626 2016-09-12 16:44 PdfDemo\lib\core-renderer-R8pre2.jar
文件 924269 2016-09-12 16:44 PdfDemo\lib\freemarker-2.3.18.jar
文件 1207623 2016-09-12 16:44 PdfDemo\lib\itext-2.0.7.jar
文件 15517 2017-03-28 16:35 PdfDemo\resource\contract\images\123.jpg
文件 2769 2017-03-24 11:18 PdfDemo\resource\templates\101.ftl
文件 2847 2017-03-24 11:18 PdfDemo\resource\templates\102.ftl
文件 2615 2017-03-24 11:18 PdfDemo\resource\templates\104.ftl
文件 2425 2017-03-24 11:18 PdfDemo\resource\templates\106.ftl
文件 1957 2017-03-24 11:43 PdfDemo\resource\templates\201.ftl
文件 2929 2017-03-24 11:18 PdfDemo\resource\templates\202.ftl
文件 2698 2017-03-24 11:18 PdfDemo\resource\templates\204.ftl
文件 10512288 2017-03-24 11:18 PdfDemo\resource\templates\simsun.ttc
文件 4446 2017-03-28 16:37 PdfDemo\src\com\pdf\PdfHandler.java
目录 0 2017-03-27 08:47 PdfDemo\bin\com\pdf
目录 0 2017-03-28 16:33 PdfDemo\bin\contract\images
目录 0 2017-03-28 16:33 PdfDemo\resource\contract\images
............此处省略16个文件信息
评论
共有 条评论