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

简介: ## 需求 很多时候我们需要将一些网页转换为pdf,比如开发人员需要为每个客户提供一份运维周报,周报一般是html的页面,但是为了能够永久记录存储,需要将周报转换为pdf格式的文件,pdf一方面便于阅览,另一方面也便于打印出来。所以本文研究如何通过phantomjs将一个html的页面转换为pdf文件。 ## 编写pdfconvert.js代码 ### 1. 先确定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()
目录
相关文章
|
6月前
|
数据安全/隐私保护 Windows
深度剖析:PDF 工具箱功能,编辑器操作及页面 / 图像提取技巧
PDF24 Tools是一款德国开发的免费PDF工具箱,18年始终免费,支持网页与Windows客户端。内置近50个工具,涵盖编辑、转换、合并、提取、加密等功能,操作简单,可离线使用,是高效处理PDF的理想选择。
824 0
|
9月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
11月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
8月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
977 40
|
8月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
10月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
529 10
|
9月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
|
9月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
11月前
简约404错误页面HTML源码
简约404错误页面HTML源码
404 12
|
人工智能 编解码 文字识别
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
1305 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具

热门文章

最新文章