如何将多个URL呈现为单个PDF

时间:2017-12-21 21:54:07

标签: phantomjs pdf-generation html-to-pdf

我尝试打开一系列网址来渲染输出,然后使用PhantomJS合并为单个PDF,但我找不到任何关于如何执行此操作的文档。我只是使用反复试验,但没有到达任何地方 - 希望有人知道如何做到这一点。

我没有完全设置PhantomJS,所以如果你知道一个更好的命令行,节点或JAVA工具会更好,我全都是耳朵(或者在这种情况下是眼睛)。

以下是我提供单个页面的代码。我尝试过复制open / render,但它总是覆盖PDF而不是附加到它。

var page = require('webpage').create(),
    system = require('system'),
    fs = require('fs'),
    pages = {
        page1: 'http://localhost/test1.html',
        page2: 'http://localhost/test2.html'
    };

page.paperSize = { 
    format: 'A4',
    orientation: 'portrait',
};

page.settings.dpi = "96";

// this renders a single page and overwrites the existing PDF or creates a new one
page.open('pages.page1', function() {
    setTimeout(function() {
        page.render('capture.pdf');
        phantom.exit();
    }, 5000);
});

1 个答案:

答案 0 :(得分:1)

PhantomJS将一个网页呈现为一个PDF文件,因此如果您可以将多个网址合并到一个html文件中,则可以在PhantomJS中打开它并制作PDF文件。

但是在脚本末尾创建几个PDF然后merge them into one with something like pdfkt会更简单,从PhantomJS child module启动合并命令