是否可以将相对 URL 提供给 Phantom.js页面生成器以获取 PDF 渲染

Is it possible to feed a relative URL to Phantom.js page generator to get a PDF render?

本文关键字:获取 渲染 PDF js Phantom 相对 URL 是否      更新时间:2023-09-26

我目前拥有的是这个脚本:

var phantom = require('phantom');
phantom.create(function(phantomInstance) {
    phantomInstance.createPage(function(page) {
        page.set('paperSize', {
            format: 'A4',
            orientation: 'portrait',
            margin: '1cm'
        });
        page.open('https://blablabla.c9.io/pdf/' + data._id + data.querystring, function(status) {
            page.render('client/pdf/' + data._id + '.pdf', function() {
                phantomInstance.exit();
            });
        });
    });
});

我在Phantom.js文档中读到page.open的第一个参数必须是绝对URL。这不是很舒服,因为我有两个运行此脚本的环境(一个在 Cloud9 IDE 上开发,一个在 VPS 上生产)。

有没有更好的方法来处理这种限制,有没有办法在不手动管理 URL 库的情况下操作相对 URL(例如 page.open(baseUrl + '...', ...) )?

如果有帮助的话,我在两个环境中都使用 Express over Node.js 服务器。

不,我认为动态生成您的 url 没有任何相当大的问题(例如 page.open(baseUrl + '...', ...) )。

您可以创建自己的小包装器,但需要以某种方式将baseUrl和相对路径输入其中,这可能会在短期内使您的生活更轻松一些,但从长远来看,当您需要重构时可能会适得其反。