gpt4 book ai didi

phantomjs - 如何使用 CasperJs 和 PhantomJS 添加 PDF 页码和总页数

转载 作者:行者123 更新时间:2023-12-02 04:32:52 25 4
gpt4 key购买 nike

我已经采用了一个网站,但我想不通。该网站使用从命令行调用的 CasperJS,它登录到网站,然后从下载的 HTML 生成 PDF。我认为 CasperJS 将使用 PhantomJS 来生成 PDF,使用 capture()。

我需要向 PDF 添加页码和总页数。例如第 1 页,共 5 页。但是我无法在网上找到任何关于如何使用 CasperJS 和 PhantomJS 执行此操作的详细信息。是否可以?

下载过程在服务器上创建如下JS文件,调用如下:

var casper = require('casper').create({
verbose: false,
logLevel: 'debug',
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',
pageSettings: {
loadImages: true,
loadPlugins: true
},

});

var url = '{$siteurl}';

casper.start(url, function() {

this.page.paperSize = {
width: '11in',
height: '8.5in',
orientation: 'landscape',
border: '0.1in'
};

this.fill('form#loginform', {
ident: 'username',
password: 'password'
}, true);
});

var url = '{$siteurl}/pdf/{$twigDate}/{$clubId}/{$sessionId}';

casper.then(function() {

casper.start(url, function() {

this.capture('{$genPdf}');

});
});

casper.run();

然后调用上面的文件:

$exe = shell_exec('/usr/bin/casperjs --ignore-ssl-errors=true --ssl-protocol=any ' . INC_ROOT . '/pdf/registers/' . $filename . ' 2>&1');

谢谢

最佳答案

幻影

PhantomJS 有一个 paperSize定义呈现为 PDF 时网页大小的属性。

paperSize属性(property)有headerfooter允许重复页眉和页脚的子属性。

PhantomJS 提供以下 example关于如何完成这项任务:

var webPage = require('webpage');
var page = webPage.create();

page.paperSize = {
width: '8.5in',
height: '11in',
header: {
height: '1cm',
contents: phantom.callback(function (pageNum, numPages) {
return '<h1>Header <span style="float:right">' + pageNum + ' / ' + numPages + '</span></h1>';
}),
},
footer: {
height: '1cm',
contents: phantom.callback(function (pageNum, numPages) {
return '<h1>Footer <span style="float:right">' + pageNum + ' / ' + numPages + '</span></h1>';
}),
},
};

Note: A more detailed example can be found in printheaderfooter.js in the examples folder.


卡斯珀JS

CasperJS 允许您使用 page访问现有 PhantomJS 网页实例的选项。

换句话说,在casperjs.start()之后, PhantomJS 页面模块在 casper.page 中可用。

您可以使用 casper.page.paperSize 在 CasperJS 中访问 paperSize 属性。

casper.page.paperSize = {
width: '8.5in',
height: '11in',
header: {
height: '1cm',
contents: phantom.callback(function (pageNum, numPages) {
return '<h1>Header <span style="float:right">' + pageNum + ' / ' + numPages + '</span></h1>';
}),
},
footer: {
height: '1cm',
contents: phantom.callback(function (pageNum, numPages) {
return '<h1>Footer <span style="float:right">' + pageNum + ' / ' + numPages + '</span></h1>';
}),
},
};

关于phantomjs - 如何使用 CasperJs 和 PhantomJS 添加 PDF 页码和总页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47000237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com