phantomjs实现html生成pdf
来源:互联网 发布:面试java项目技术难点 编辑:程序博客网 时间:2024/06/05 09:23
phantomjs实现html生成pdf
实现比较简单,同时能够实现对页面的完全展示成pdf,但是生成的时间比较长且并发很差,很容易直接挂掉
以下是实现:
1.下载phantomjs-2.1.1-windows并解压到本地路劲
2.实现java代码
/*** 通过phantomjs实现html生成pdf* @param url 页面的url 得到html生成pdf* @param phantomjs 运行* @param jsFile 处理的js* @param cookieNname 用户cookie* @param cookieValue 用户值* @param renderPath 生成pdf的路劲* @param domain cookie的url的Host* @param size pdf的页面大小*/public static void creatPDF(String url,String phantomjs,String jsFile,String cookieNname,String cookieValue,String renderPath,String domain,String size){try {Runtime rt = Runtime.getRuntime();String exec = phantomjs + " " + jsFile + " " + url + " " + cookieNname + " " + cookieValue + " " +renderPath + " " + domain + " " + size;rt.exec(exec);}catch(Exception ex){ex.printStackTrace();}}
对应jsFile
system = require('system') address = system.args[1];var page = require('webpage').create(); var url = address; var name = system.args[2];var value = system.args[3];var warrantyCard = system.args[4];var size = system.args[6].split('*');var dpi = 72.0, dpcm = dpi/2.54;var widthCm = size[0], heightCm = size[1]; // A4//page.viewportSize = { width: Math.round(widthCm * dpcm), height: Math.round(heightCm * dpcm) };page.paperSize = {width: widthCm+'cm', height: heightCm+'cm', orientation: 'portrait', margin: '0.4cm' };page.settings.dpi = dpi;page.settings.loadImages = true;page.settings.resourceTimeout = 30*1000; // 5 secondspage.onResourceTimeout = function(e) { phantom.exit(1);};phantom.addCookie({ 'name' : name, /* required property */ 'value' : value, 'domain' : 'www.baidu.com' //Host:www.baidu.com}); page.open(url, function (status) { window.setTimeout(function () { page.clipRect = { top: 0, left: 200, width: 400, height: 300 } page.render(warrantyCard); //截图 console.log(page.content); phantom.exit(); }, 3000); });
关于生成的pdf规定A4 但是html页面过大问题 ,pdf只能展示页面的一部分宽度 可以在html中添加css zoom:0.7 按情况给百分比
阅读全文
2 0
- phantomjs实现html生成pdf
- phantomjs html to PDF
- phantomjs生成pdf
- php使用phantomjs生成pdf
- Phantomjs 生成多页PDF示例
- Selenium+PhantomJS 实现非html(pdf、图片、apk等)文件下载
- Java实现HTML代码生成PDF文档
- Java实现HTML代码生成PDF文档
- Java实现HTML代码生成PDF文档
- java 中实现HTML 生成pdf
- Java实现HTML代码生成PDF文档
- Java实现HTML代码生成PDF文档
- Java实现HTML代码生成PDF文档
- Java实现HTML代码生成PDF文档
- 将html生成pdf
- 从html生成pdf
- PHP HTML 生成 PDF
- C# HTML生成PDF
- Josephus问题的一个C语言程序
- Uri详解之——Uri结构与代码提取
- UITabbar的几种使用
- sql查询
- jmeter个人学习之路--jmeter常用函数整理
- phantomjs实现html生成pdf
- [SQL]无法绑定由多个部分组成的标识符
- B2C商城APP开发方案及流程
- web.xml is missing and <failOnMissingWebXml> is set to true
- 第十八周:[Leetcode]98. Validate Binary Search Tree
- PHP中imagecopyresampled参数详解
- HTML标签语义
- MongoDB数据库设计准则
- Ajax自己的 属性提示错误 error:function(){} $.post().error() .ajaxError()