Skip to content

chenlulouis/STAr.Enterprise.BatchPrintApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STAr.Enterprise.BatchPrintApi

项目背景

为了解决批量打印对html页面的支持问题,以及提高速度和降低依赖,设计了这个项目。

相关技术

Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。 Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。 Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。 Node.js 使用事件驱动,非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

Restify 是一个 Node.JS 模块,可以让你创建正确的 REST web services。它借鉴了很多 express 的设计,因为它是 node.js web 应用事实上的标准 API。

Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。相比于现代浏览器,Headless Chrome 更加方便测试 web 应用,获得网站的截图,做爬虫抓取信息等。相比于出道较早的 PhantomJS,SlimerJS 等,Headless Chrome 则更加贴近浏览器环境。

Puppeteer 是一个控制 headless Chrome 的 Node.js API 。它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置为使用完整的(非 headless)Chrome。 在浏览器中手动完成的大多数事情都可以通过使用 Puppeteer 完成,下面是一些入门的例子:

  • 生成屏幕截图和 PDF 页面
  • 检索 SPA 并生成预渲染内容(即“SSR”)
  • 从网站上爬取内容
  • 自动提交表单,UI测试,键盘输入等
  • 创建一个最新的自动测试环境。使用最新的 JavaScript 和浏览器功能,在最新版本的 Chrome 中直接运行测试
  • 捕获网站的时间线跟踪,以帮助诊断性能问题

项目主要功能

  • 提供一个Web API,接收用户的批量打印请求。请求中至少携带一个页面的URL地址。
  • 处理批量打印请求,使用Chrome 的 headless方式访问请求中指定的页面。
  • 使用Chrome的API将网页另存为PDF文档。
  • 提供PDF文档的URL供下载或者浏览。
  • 使用easy-pdf-merge合并多个PDF文件。

项目准备

以Windows开发环境为例。

1. 安装Node.js

Node.js官网下载最新版的node.js,版本要求>8.0 。

2. 创建项目

在你认为合适的地方拷贝项目到本地

https://github.com/zhangwei8387/STAr.Enterprise.BatchPrintApi.git

npm 会引导你创建package.json的文件。关于NPM其他相关命令请参考NPM命令说明

3. 安装扩展包

在命令行 执行

npm install

安装 相关依赖包。其中pupeteer会下载一个特别的Chrome浏览器到你的项目中,大概120MB,请耐心等待...

4. 安装Java Runtime Enviroment

因为 easy-pdf-merge 需要执行一个jar包,所以需要服务器安装Java运行环境

地址: https://www.java.com/zh_CN/download/windows-64bit.jsp

至此,项目开发环境就全部搭建完成。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published