文档页面切换

核心提示1 前言在项目开发过程中很经常遇到需要自定义生成pdf的需求,在一番查找后找到了三个比较合适的工具:itext、spire和wkhtmltopdf,其中itext和spire功能强大,但商业用途需收费,wkhtmltopdf开源免费

1前言

在项目开发过程中,我们经常会遇到自定义生成pdf的需求。经过一番搜索,我们找到了三个合适的工具:itext、spire和WKHMTTOPDF。其中itext和spire功能强大,但商业使用需要付费。WKHMTTOPDF开源免费,功能完全充足,所以我们决定设置它!

2 wkhtmltopdf简介

Wkhtmltopdf是一个独立安装、开源的免费工具,通过命令行交互将html内容转换成pdf或图片。命令行交互意味着可以在任何可以调用本地命令的开发语言中使用,比如Java。其本质是利用内置的浏览器内核渲染目标网页,然后将网页渲染结果转换成PDF文档或图片。在本文中,我们在java中调用wkhtmltopdf来生成pdf。

2.1使用模式

1.在https://wkhtmltopdf.org/downloads.html,官网下载合适版本的软件并安装。

2.创建要转换的目标HTML页面。您可以使用任何熟悉的技术堆栈。需要注意的一点是,尽量保持页面静态,尽量减少动态效果和交互。Wkhtmltopdf也可以支持html文件的直接转换,但是建议通过url进行转换,这样更容易。

3.部署并运行html web服务,并运行命令行进行转换:

WK _ BIN _ PATH/wkhtmltopdf http://your domain/target . html SAVE _ PATH/target . pdf

4.完成了。下载的pdf文件可以在存储目录中找到。

2.2 wkhtmltopdf配置

wkhtmltopdf的命令结构是:

wkhtmltopdf[全局选项]...[对象]...

在命令行上,您可以通过wkhtmltopdf–h查看所有配置指令。

文件:https://wkhtmltopdf.org/usage/wkhtmltopdf.txt,官方网站

3本文实现了该功能。

【注意】html要标准化。

3.1自定义页边距

-b -B,-margin-底部底部边距,单位mm,默认为10mm。

-l -L,-margin-左左边距,单位mm,默认为10mm。

-r -R,-margin-右右边距,单位mm,默认为10mm。

-t -T,- margin-top上边距,单位mm,默认为10mm。

3.2自定义页眉和页脚

- header-html标题内容,由html定制

-页脚-html页脚内容,由html定制

Wkhtmltopdf将自动为页面带来一些参数以供使用:'页面','从页面','到页面','网页','部分','子集','日期',' isodate ','时间','标题','文档标题','站点页面','站点页面'

3.3自定义pdf内容

下面是要生成的pdf内容。您可以将这个html页面视为一个pdf生成模板。您可以使用自己熟悉的网页来开发技术堆栈。尽量让页面静态化,一些有动态效果的插件要尽量禁用动态效果。

3.4页面加载完成判断

由于页面加载需要一些时间,wkhtml提供了两种等待页面加载的方式:延迟和页面状态判断。哪一个都可以。如果两者都配置,页面状态判断模式将生效。

耽搁

通过配置项实现:- javascript-delay,msec的单位为毫秒。

页面状态

通过配置项实现:-window-status,其中windowStatus是html页面上window.status的值。

3.5示例代码

关键词:java生成pdf,java html转换pdf。我是袁牧,多年的互联网老兵。我在《袁牧Java编程笔记》中记录了我的编程生涯中的一些Java编程笔记。欢迎交流。

 
友情链接
鄂ICP备19019357号-22