html转pdf,jsf实现下载功能
来源:互联网 发布:单片机怎么学 编辑:程序博客网 时间:2024/05/27 02:33
第一步,html转pdf
依赖的jar包可以从这下载
http://download.csdn.net/detail/czj2015/9430534
html转pdf 的代码如下:
import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;import org.xhtmlrenderer.pdf.ITextFontResolver;import org.xhtmlrenderer.pdf.ITextRenderer;import com.lowagie.text.pdf.BaseFont;public class HtmltoPDF {public static void main(String[] args) throws Exception {// htmlToPdf();htmlToPdf2();// htmlToPdf3();}// 不支持中文public static void htmlToPdf() throws Exception {String inputFile = "f:/b.html";String url = new File(inputFile).toURI().toURL().toString();String outputFile = "f:/flying.pdf";OutputStream os = new FileOutputStream(outputFile);ITextRenderer renderer = new ITextRenderer();renderer.setDocument(url);renderer.layout();renderer.createPDF(os);os.close();}// 支持中文public static void htmlToPdf2() throws Exception {String outputFile = "F:/demo_3.pdf";OutputStream os = new FileOutputStream(outputFile);ITextRenderer renderer = new ITextRenderer();ITextFontResolver fontResolver = renderer.getFontResolver();fontResolver.addFont("C:/Windows/fonts/simsun.ttc",BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);StringBuffer html = new StringBuffer();// DOCTYPE 必需写否则类似于 这样的字符解析会出现错误html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">").append("<head>").append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />").append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>").append("</head>").append("<body>aaaaaaa测试啊测试</body>");html.append("</html>");renderer.setDocumentFromString(html.toString());// 解决图片的相对路径问题// renderer.getSharedContext().setBaseURL("file:/F:/teste/html/");renderer.layout();renderer.createPDF(os);System.out.println("======转换成功!");os.close();}public static void htmlToPdf3() throws Exception {String inputFile = "F:/b.html";String outFile = "F:/test.pdf";OutputStream os = null;os = new FileOutputStream(outFile);ITextRenderer renderer = new ITextRenderer();ITextFontResolver fontResolver = renderer.getFontResolver();fontResolver.addFont("C:/Windows/fonts/simsun.ttc",BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);String url = new File(inputFile).toURI().toURL().toString();System.out.println("=============url: " + url);renderer.setDocument(url);renderer.layout();renderer.createPDF(os);System.out.println("======转换成功!");os.close();}}
第二步: 提供下载功能
原先的想法是,网页上点击了下载按钮以后, 托管bean开始生成pdf,生成结束后直接给页面跳出下载。
然而后来发现这种方法行不通。因为jsf下载功能只有控件 commandButton和commandLink可以实现。其实用js来控制来onclick按钮也可以解决这个问题,但是这样做的
话调用的就不是一个托管bean了。
提供下载的代码如下:
public void downPdf() {//String filePath = this.vals;String filePath = "f:/demo_3.pdf";System.out.println("filePath" + filePath);File file = new File(filePath);FacesContext context = FacesContext.getCurrentInstance();HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();response.setContentType("application/msdownload");response.setCharacterEncoding("UTF-8");response.setContentLength(new Long(file.length()).intValue());// 文件长度response.setHeader("Content-Disposition", "attachment; filename=\""+ file.getName() + "\"");// 文件名ServletOutputStream out = null;FileInputStream fis = null;BufferedReader reader = null;String readLine = null;try {out = response.getOutputStream();fis = new FileInputStream(file);reader = new BufferedReader(new InputStreamReader(fis));while ((readLine = reader.readLine()) != null) {try {out.write(readLine.getBytes());} catch (Exception e) {}}out.flush();context.responseComplete();System.out.println("提供下载结束");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
1 0
- html转pdf,jsf实现下载功能
- java实现html转pdf功能
- 下载html 转pdf
- html转pdf 下载操作
- js实现html页面转为pdf下载
- jsf 实现文件下载
- pdf2htmlEX实现pdf转html
- Java实现Html转PDF
- Java实现Html转PDF
- iText实现html转pdf
- Java实现Html转PDF
- pdf2htmlEX实现pdf转html
- Java实现Html转PDF
- Java实现Html转PDF
- ItextPdf 数字签名,HTML转PDF功能
- 在html页面上实现下载功能
- 【c#功能实现】PDF与html的比较【很多例子】
- js实现html下载到本地并生成pdf文件
- nefuoj-813:good
- POJ3628 01背包
- C 语言资源大全中文版
- Codeforces Round #338 (Div. 2) C. Running Track
- C++中引用和指针的区别
- html转pdf,jsf实现下载功能
- 10.UITableView的刷新数据方法
- 使用消息队列的10个理由
- Ecplise-SVN插件异常: 由于目标计算机积极拒绝,无法连接。
- 渗透测试windows 必备支持
- 关于接口的一些概念性整理
- java基础巩固笔记(3)-类加载器
- 【JZOJ 4353】distance
- HDU-2035