node.jsプロセスでPhantomJSスクリプトをラップしようとしています。ファントムスクリプトは、コマンドラインで提供された引数からURLを取得し、pdfを出力します(pahntomインストールに含まれるrasterize.jsの例によく似ています)。node.jsの 'webpage' Phantomモジュールの使用
私が使っているファントムスクリプトはうまくいきます。私の雇用主は、可能であれば、ノードスクリプトを望んでいます。問題ないですが、node-phantomノードモジュールを使用してラップすることができます。
しかし、今、私はつまずきを打ってきました、私のファントムスクリプトがありますので、
var page = require('webpage').create();
、「Webページ」と呼ばれるモジュールを検索しようとしているのNode.js、「Webページ」モジュールを内蔵されましたファンタムはノードがそれを見つけることができないようにインストールします。私が知る限り、「ウェブページ」と呼ばれるnpmモジュールはありません。
「Webページ」はこのように使用されます。アドレスは、コマンドラインと出力に指定されたURLである
page.open(address, function (status) {
if (status !== 'success') {
// --- Error opening the webpage ---
console.log('Unable to load the address!');
} else {
// --- Keep Looping Until Render Completes ---
window.setTimeout(function() {
page.render(output);
phantom.exit();
}, 200);
}
});
は別の引数、名前とファイルの種類です。
誰でもお手伝いできますか?これはかなり抽象的なものなので、私は正直であればそれほど期待はしていないが、試してみる価値がある。
ありがとうございました。
EDIT - 約2時間、私は今、これを持って、後で
PDFをスロー:
var phanty = require('node-phantom');
var system = require('system');
phanty.create(function(err,phantom) {
//var page = require('webpage').create();
var address;
var output;
var size;
if (system.args.length < 4 || system.args.length > 6) {
// --- Bad Input ---
console.log('Wrong usage, you need to specify the BLAH BLAH BLAH');
phantom.exit(1);
} else {
phantom.createPage(function(err,page){
// --- Set Variables, Web Address, Output ---
address = system.args[2];
output = system.args[3];
page.viewportSize = { width: 600, height: 600 };
// --- Set Variables, Web Address ---
if (system.args.length > 4 && system.args[3].substr(-4) === ".pdf") {
// --- PDF Specific ---
size = system.args[4].split('*');
page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: '0px' }
: { format: system.args[4], orientation: 'portrait', margin: '1cm' };
}
// --- Zoom Factor (Should Never Be Set) ---
if (system.args.length > 5) {
page.zoomFactor = system.args[5];
} else {
page.zoomFactor = 1;
}
//----------------------------------------------------
page.open(address ,function(err,status){
if (status !== 'success') {
// --- Error opening the webpage ---
console.log('Unable to load the address!');
} else {
// --- Keep Looping Until Render Completes ---
process.nextTick(function() {
page.render(output);
phantom.exit();
}, 200);
}
});
});
}
});
しかし!それは正しいサイズではありません! 、私のノードのスクリプトで鉱山のに対し
次のようになります:
A4フォーマットを実現するためにプロパティをハードコードすることはできますか?どのような特性がありますか?
私はとても近いです!
このAdamはどこにでもありますか?私は興味がある。 –
残念ながら最後にはありません。私は代わりにファントムプロセスを使用するように私のチームを説得しました。 –
好奇心のために、最後の2つのスクリーンショットでどのツールが使用されていますか? –