温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
还在本视频中,你将学习如何使用fuusi,把任意网页保存为PDF文档。我会从一个空的graidle项目开始,但你也可以按照本教程的说明把这个功能直接添加到你自己的Java应用程序中。首先创建一个engine实例,Engine负责启动并初始化chome面免情创建engine时必须指定渲染模式。Fuzio支持两种渲染模式hardware accelerated和off screen. 在Hardware accelerated的模式下,Chmium直接在嵌入到Java窗口的native window中渲染网页,在office screen模式下,Chmiumium在内存中渲染网页。本示例使用officeph screen礼品渲染模式,因为我们全程不需要显示窗口。接着创建一个browseroer实例,它相当于Chrome浏览器中的一个标签眼,然后加在我们要转换的网页,这里我们用百度网站示例fusi通过打印API完整支持将HTML页面导。
01:00
处为PDF实现时主要用到两个回调,1、print callback决定如何响应打印请求。2、printtml callback配置HTML打印设置。先设置print callback, 告诉浏览器允许这次打印请求,并且不弹出打印预览对话框,直接继续打印。然后在设置print tml call back. 在这里我们从可用打印机中取出内置的PDF打印机,拿到它的打印作业,然后配置打印设置,指定目标PDF文件的保存路径,设置为纵向调用I apply. 应用这些设置我们还可以订阅print complete的事件。在打印完成时输出结果,打印结束后任务就全部完成了。这时关闭engine,释放所有已分配的资源并终止chmium,然后调用t proceed, 告诉浏览器使用这台PDF打印机。
02:00
开始导出,最后通过may frame触发导出即可。以上就是全部代码,运行程序可以看到控制台输出PDF导出成功,项目目录下生成了百度PDF。打开这个文件,网页的内容样式和背景都完整保留,和在Chrome浏览器里看到的完全一致,因为它就是由chromemium免情渲染的,整个过程没有弹出任何窗口,非常适合用在报表导出、批量归档这类服务端或后台场景中。
我来说两句