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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将多个URL呈现为单个PDF相关的知识,希望对你有一定的参考价值。

我正在尝试打开一系列URL来呈现输出,然后使用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);
});
答案

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

但是在脚本结束时制作几个PDF然后merge them into one with something like pdfkt会更简单,从PhantomJS child module启动合并命令

以上是关于如何将多个URL呈现为单个PDF的主要内容,如果未能解决你的问题,请参考以下文章

从单个按钮从多个片段中提取数据

如何在 FAB 按钮单击时将数据从多个片段发送到单个活动

将多个内存块呈现为单个连续块的容器

如何将图像转换为PDF?

将同一文件的多个 blob 合并为一个以获取原始 pdf 文件

从url链接压缩多个pdf,如何