資源簡介
通過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個文件信息
評論
共有 條評論