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

如何使用CasperJs和PhantomJS添加PDF页码和总页数,phantomjs,casperjs,Phantomjs,Casperjs,我已经通过了一个网站,我想不出什么。该网站使用从命令行调用的CasperJS,该命令行登录到该网站,然后从下载的HTML生成PDF。我认为CasperJS将使用PhantomJS生成PDF,使用capture() 我需要添加页码和总页数到PDF。例如,第1页,共5页。但是我在网上找不到任何关于如何使用CasperJS和PhantomJS的细节。可能吗 下载过程会在服务器上创建以下JS文件,其名称如下: var casper = require('casper').create({ ver

我已经通过了一个网站,我想不出什么。该网站使用从命令行调用的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 PhantomJS有一个属性,用于定义呈现为PDF时网页的大小

该属性具有允许重复页眉和页脚的和子属性

PhantomJS提供了关于如何完成此任务的以下内容:

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>';
    }),
  },
};

如果您已经调用了SHILLYEXEC,请考虑<代码> PSPDFoToR号(x= -1Pt,y= -1Pt,开始=1,大小=10)'输入.pdf输出.pdf < /> > a
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>';
    }),
  },
};