12

我在 html 页面 (www.mysite.com/resume.html) 中有我的在线简历。每次我需要它的 PDF 版本时,我都会使用 Google Chrome 的打印对话框将其保存为 PDF,它使用我的打印 CSS 样式表。

我希望能够导航到 www.mysite.com/resume.pdf 以始终拥有最新的 PDF 版本,而无需手动通过 Google Chrome。有没有办法以编程方式从简历 html 自动创建 resume.pdf?如果我可以编写一个每 24 小时运行一次或类似的脚本,那就太好了。

4

3 回答 3

10

PhantomJS 非常适合这个。它从命令行调用 WebKit 实例,然后可以使用该实例输出到 PDF 等文件。

幻影JS:

http://phantomjs.org/

将屏幕输出导出到文件的具体说明:

http://phantomjs.org/screen-capture.html

例如:

phantomjs rasterize.js 'http://www.example.com/resume.html' resume.pdf
于 2013-05-29T08:00:55.633 回答
4

Chrome 已启动无头程序。

有了它,我们可以创建一个pdf。例如对于 Windows 将您的命令行导航到

C:\Users\{{your_username}}\AppData\Local\Google\Chrome SxS\Application>

然后点击命令:

chrome --headless --print-to-pdf="d:\\{{path and file name}}.pdf" https://google.com
于 2017-05-22T11:30:57.747 回答
0

如果您希望通过 PHP 在服务器端执行此操作,我可能会推荐使用Puppeteer(NodeJS 包)和 Chrome / Chromium 无头浏览器的Browsershot库?

它真的很好用。比wkhtmltopdf更容易安装和上手(这是另一个不依赖 NodeJS 包或 Chrome/Chromium 无头浏览器的选项。就我个人而言,我推荐 Browsershot 解决方案,因为 wkhtmltopdf 存在一些问题,具体取决于服务器的类型(Linux发行版和版本)您正在运行。也就是说,我发现安装 wkhtmltopdf 的唯一可靠方法是从您正在运行的服务器上的源代码下载和编译,而不是通过包管理器)。

此外,如果您在处理 Laravel 项目时碰巧特别需要解决方案,那么可以使用 Browsershot 的包装器库

查看本教程以开始使用。

于 2018-11-06T21:41:42.343 回答