2016-04-25 10 views
0

私は、PhantomJSをPythonのPDFKitと組み合わせてPDFを生成しています。PhantomJSの高さが変更されない

var args = process.argv.slice(2); 
var phantom = require('phantom'); 

phantom.create().then(function(ph) { 
    ph.createPage().then(function(page) { 
     page.viewportSize = {width: 20, height: 1200}; 

     page.open(args[0]).then(function(status) { 
      page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js').then(function(err) { 
       page.evaluate(function() { 
        return $('body').height(); 
       }).then(function(height) { 
        console.log(height); 
        ph.exit(); 
       }); 
      }); 
     }); 
    }); 
}); 

私はファントムはjQueryを使って適切な高さを計算するとのトラブルを抱えている:私は私のPythonスクリプトは、すべてのページの体のサイズを取得するために呼び出している、次のノードのスクリプトを持っています。ご覧のとおり、ファントムのウィンドウサイズが適切に設定されていないように見せるために、意図的に幅を「20」に設定しました。 20,200,2000のいずれの場合でも、ページあたりのjQueryのheight()メソッド(ページごとに異なりますが、幅の設定に関係なく指定された特定のページでは常に同じ)から同じ高さを取得します。ビューポートサイズが手動で設定されているかどうかに関わらず、静的であること。なぜこれが起こっているのかについてのガイダンスは非常に高く評価されています!

+0

を通じて正しい値を得ることができるあなたは 'page.set(「viewportSizeを」、...)を使用する必要があり'このよう返さ約束 –

+0

を消費するでしょうか?私はかなり約束を使用しています... page.set( 'viewportSize'、{width:20、height:1200})then(function(err){ page.open(args [0])。次に(機能(状態){ ... } }); – coltonoscopy

答えて

0

$( 'body')。height()は、document.bodyの高さを取得することを意味します。これは、HTMLの高さによって決まる通常の数値です。 あなたがwindow.screen.height

関連する問題