Html2Pdf 比较合适的方式之一

Phantomjs安装

官网地址:http://phantomjs.org
下载地址:http://phantomjs.org/download.html

下载完成后 将压缩包进行解压

在bin目录下 新建一个html2pdf.js文件

html2pdf.js 代码如下  注意更换你自己要生成的pdf路径

var page = require('webpage').create();
var system = require('system');
 
读取命令行参数,也就是js文件路径。
if (system.args.length === 1) {
  console.log('Usage: loadspeed.js <some URL>');
//这行代码很重要。凡是结束必须调用。否则phantomjs不会停止
  phantom.exit();
}
page.settings.loadImages = true;  //加载图片
page.settings.resourceTimeout = 30000;//超过10秒放弃加载
//截图设置,
//page.viewportSize = {
//  width: 1000,
//  height: 3000
//};
var address = system.args[1];
page.open(address, function(status) {
    
    function checkReadyState() {//等待加载完成将页面生成pdf
        setTimeout(function () {
            var readyState = page.evaluate(function () {
                return document.readyState;
            });
 
            if ("complete" === readyState) {
                
                page.paperSize = { width:'1500px',height:'2000px',orientation: 'portrait',border: '1cm' };
                var timestamp = Date.parse(new Date());
                var pdfname = 'HT_'+timestamp + Math.floor(Math.random()*1000000);
                var outpathstr = "D:/software/file/"+pdfname+".pdf";
                page.render(outpathstr);
                //console.log就是传输回去的内容。
                console.log("success!");
                console.log("$"+outpathstr+"$");
                phantom.exit(); 
                
            } else {
                checkReadyState();
            }
        },1000);
    }
    checkReadyState();
});

 

 生成方式 一:

打开终端,进入phantomjs的bin目录,执行命令 phantomjs html2pdf.js "网址或html文件路径",注意空格    如:phantomjs html2pdf.js "https://www.baidu.com/"

方式二  采用Java

首先创建一个工具类

注意:更换成你自己的文件路径

public static String parseHtml2Pdf(String url) throws IOException {
        System.out.println(url);
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("D:/software/phantomjs-2.1.1-windows/bin/phantomjs D:/software/phantomjs-2.1.1-windows/bin/html2pdf.js "+url);
        InputStream is = p.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        StringBuffer sbf = new StringBuffer();
        String tmp = "";
        while ((tmp = br.readLine()) != null) {
            sbf.append(tmp);
        }
        String resultstr = sbf.toString();
        System.out.println("resultstr:"+resultstr);
        String[] arr = resultstr.split("\\$");
        String result = "";
        for(String s : arr){
            if(s.endsWith("pdf"))result = s;
        }
        return result;
    }

测试代码

public static void main(String[] args) throws IOException {
        long start = System.currentTimeMillis();
        String result = Html2PdfUtils.parseHtml2Pdf("https://www.baudu.com");
        long all = System.currentTimeMillis()- start;
        System.out.println("pdf生成地址:"+result+",用时:"+all/1000+"秒");
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iText PDF/HTML是一个Java库,它可以将HTML和CSS转换为PDF格式。使用iText PDF/HTML,你可以创建一个包含HTML内容和CSS样式的PDF文档。这个库简化了PDF文档的创建过程,因为大多数人都熟悉HTML和CSS。你只需要在HTML中编写内容,并使用CSS定义样式,然后使用iText PDF/HTML将其转换为PDF格式。这样就可以避免使用其他专有格式来创建模板的需要。 在使用iText PDF/HTML时,你可以选择三种主要方式来创建PDF文档: 1. 从头开始创建PDF文档,使用iText对象(如Paragraph、Table、Cell、List等)进行编程。这种方式的优点是可以完全按照你的需要进行配置,但缺点是需要对所有内容进行编程,并且即使是小的更改也需要修改Java代码并重新编译应用程序。 2. 填写预先存在的表单,使用AcroForm技术或XML表单体系结构(XFA)。AcroForm技术简单快速,但不支持动态表单;而XFA是动态的,填写表单方便,但表单创建复杂,并且自PDF 2.0以来已被弃用。 3. 使用pdfHTMLHTML和CSS转换为PDF。这种方式非常简单,因为大多数人都熟悉HTML和CSS。你只需要在HTML中创建内容,并使用CSS定义样式,然后使用pdfHTML将其转换为PDF格式。 以上是关于iText PDF/HTML的简介和使用方法。如果需要更详细的信息,可以参考引用提供的博客文章。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [itextpdf 使用之 htmlpdf 页眉页脚带图片](https://download.csdn.net/download/z1353095373/85382971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [iText7高级教程之html2pdf——4.使用pdfHTML创建报告](https://blog.csdn.net/u012397189/article/details/127683350)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值