Bir node.js işleminde bir PhantomJS komut dosyasını sarmaya çalışıyorum. Fantom betiği komut satırında sağlanan argümanlardan bir URL alır ve bir pdf çıkarır (pahntom kurulumunda bulunan rasterize.js örneğine çok benzer).node.js 'web sayfası' Phantom modülünü kullanma
Elimde çalıştığım phantom betiği iyi çalışıyor, sadece işverenim mümkünse bir düğüm komutunu istiyor. Sorun değil, sarmak için node-phantom düğüm modülünü kullanabilirim.
Ama şimdi bir engel isabet ettik benim fantom komut vardır: Yani
var page = require('webpage').create();
, 'web sayfası' adlı bir modül bulmaya çalışıyor node.js, 'web sayfası' modülü yerleşik hayalet yükleme, böylece düğüm onu bulamıyor. Anlayabildiğim kadarıyla 'web sayfası' diye adlandırılan npm modülü yok.
'web sayfası' böyle kullanılır: adres komut satırında ve çıkış belirtilen url'dir
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);
}
});
başka argüman, isim ve dosyanın türüdür.
Herkes bana yardımcı olabilir mi? Bu oldukça soyut bir tanesidir, bu yüzden dürüst olsam bile denemeye değer değilim.
Teşekkürler.
DÜZENLEME - Yaklaşık 2 saat şimdi bu var sonra
PDF dışarı atar:
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);
}
});
});
}
});
Ama! Doğru boyut değil! Benim düğüm komut mayın Oysa
şöyle::
sayfa nesne hayali 'web sayfası' oluşturmak() o URL'yi geçirilen önce fonksiyon şöyle kullanılarak oluşturulanA4 formatına ulaşmak için özellikleri kodlamak mümkün mü? Hangi mülkler eksik?
Çok yakınım! Eğer PhantomJS komut aynı kavram ve metaforları yeniden kullanmak istiyorsanız, çünkü burada
var phantom=require('../node-phantom');
phantom.create(function(error,ph){
ph.createPage(function(err,page){
page.open(url ,function(err,status){
// do something
});
});
});
Sizin karışıklık geçerli:
Bu Adam'la bir yere varacak mısın? Merak ediyorum. –
Ne yazık ki sonunda değil. Takımımı iyi çalıştıran fantom sürecini kullanmaya ikna ettim. –
Merak etme, son iki ekran görüntüsünde hangi araç kullanılıyor? –