phantomjs技巧之将html页面转换为pdf文件

需求

很多时候我们需要将一些网页转换为pdf,比如开发人员需要为每个客户提供一份运维周报,周报一般是html的页面,但是为了能够永久记录存储,需要将周报转换为pdf格式的文件,pdf一方面便于阅览,另一方面也便于打印出来。所以本文研究如何通过phantomjs将一个html的页面转换为pdf文件。

编写pdfconvert.js代码

1. 先确定pdf输出格式

  • 页面格式(format):A3/A4/A5/letter
  • 页眉/页脚(header/footer):true or false
  • 页面方向(orientation):portrait/landscape
  • 页边距(margin)
    -浏览器窗口大小(viewportSize)

2. 参数输入输出

  • 输入:url地址
  • 输出:文件名

3. 具体代码(以A4纸输出为例)

var page = require( 'webpage' ).create();
var oss_url, out_pdf;
var system = require('system')
oss_url = system.args[1];  //输入,系统参数
out_pdf = system.args[2]; //输出, 系统参数

page.viewportSize = { width: 1024, height: 800 };  //viewport size

page.paperSize = {
        format: 'A4',
        orientation: 'portrait',
        margin: '1cm',  //页边距
        header: { //如果不需要,可以不用添加
                height: '1cm',
                contents: phantom.callback(function(pageNum, numPages) {
                       //返回页眉的代码逻辑
                       }
                })
        },
        footer: { //如果不需要,可以不用添加
                height: '1cm',
                contents: phantom.callback(function(pageNum, numPages) {
                        //返回页脚的代码逻辑
                        }
                })
        }
};

page.open( oss_url, function( status ) {
                window.setTimeout(function() {
                        if ( status === "success" ) {
                                page.render(out_pdf);
                        }
                        phantom.exit();
                        }, 300); //超时设置
});

后端代码

        url := os.Args[1]
        out_pdf := os.Args[2]
        cmd := exec.Command("./phantomjs", "pdfconvertor.js", url, out_pdf)
        cmd.Stdout = os.Stdout
        cmd.Run()
时间: 2024-09-28 16:30:19

phantomjs技巧之将html页面转换为pdf文件的相关文章

ios-在iphone中将 UITextView转换为pdf文件

问题描述 在iphone中将 UITextView转换为pdf文件 本人是开发iPhone应用的,现在用户给了一些UITextView,我需要把它转换成PDF文件然后存储在本地,不知道怎么做?谢谢大家的帮忙. 解决方案 用UIKit可以把UITextView转为PDF文件的 具体的用法你可以去网上搜一下,也可以看看这个说明链接 解决方案二: 试试代码: - (void) generatePdfWithFilePath: (NSString *)thefilePath{ UIGraphicsBeg

Photoshop如何将多张图片转换为PDF文件

  1.打开Photoshop,点击文件菜单,点击"自动"选项,选择"PDF批处理". 2. 点击"浏览"按钮选择要创建的图片文件. 3.选择图片并排序,你可以在这里拖动图片名称来进行排序,这将会影响到PDF输出后的页面顺序 4.你可以根据需要来改变PDF的具体参数,然后点击"存储PDF",Photoshop便会自动进行处理,稍等片刻就会看到输出的PDF文件了. 分类: PS入门教程

利用Photoshop将多张图片转换为PDF文件

  1. 支持版本 首先你电脑上要安装有Photoshop CS3及以上版本,版本过于陈旧的同学请更新你的Photoshop 2. PDF演示文稿 打开Photoshop,点击文件菜单>自动>PDF批处理. 3. 点击"浏览"按钮选择要创建的图片文件 4. 选择图片并排序 你可以在这里拖动图片名称来进行排序,这将会影响到PDF输出后的页面顺序. 5. 存储并设置参数 你可以根据需要来改变PDF的具体参数,包括是否嵌入页面缩览图.压缩属性等等.你可以根据自己的需要来进行设置.

HTML页面生成PDF文件

问题描述 求大神指点下,如何将html生成PDF文件?谢谢啦 解决方案

JavaScript+Java实现HTML页面转为PDF文件保存的方法_javascript技巧

需求是一个导出pdf的功能,多方奔走终于实现了,走了不少弯路,而且怀疑现在这个方法仍是弯的. 有个jsPDF 插件可以在前端直接生成pdf,很简便,但不支持IE. 前端: 首先引入  html2canvas.js html2canvas(document.body, { //截图对象 //此处可配置详细参数 onrendered: function(canvas) { //渲染完成回调canvas canvas.id = "mycanvas"; // 生成base64图片数据 var

phantomjs技巧之golang后端生成highcharts图片文件

需求 项目要求为每一个阿里云大客户每周生成一份周报,周报内容包括各类云产品(如ECS/SLB/RDS/CDN)使用情况.我们知道通过前端js可以将highcharts曲线图/饼图等转换成图片格式,但是只能在线convert,也就是图片需要上传到highcharts服务器,数据安全肯定无法保证,所以本文借助phantomjs这个利器来直接通过服务端生成图片 highcharts配置项结构体定义 1. 曲线图定义 //series结构体定义 type Series struct { Data [][

Word 2013中如何将Word文档转换为PDF文档

在Word2013中,用户可以将Word文档直接转换为PDF文件,从而真正做到Word转PDF不求人.Word2013中Word转PDF的步骤如下所述: 第1步,使用Word2013打开任意Word文档,依次单击"文件"→"另存为"按钮,如图2013080501所示. 图2013080301 单击"另存为"按钮 第2步,打开"另存为"选项卡,选择Word转PDF生成文件的保存位置.在打开的"另存为"对话框中

c#调用cmd命令,将doc转换为 pdf

c#调用cmd命令,将doc转换为 pdf   using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; namespace Tools { /// <summary> /// doc文件转换为pdf文件 /// </summary> public class DocToPdf { private string savePath = ""

pdf-怎么把JSP页面在后台生成PDF文件

问题描述 怎么把JSP页面在后台生成PDF文件 JSP页面要在后台生成PDF文件,就大神解决,经理要我把JSP页面生成PDF文件 解决方案 http://www.iteye.com/topic/509417 解决方案二: 看看这个.