2016-04-28 10 views
0

Wie können wir einen partiellen Seiteninhalt mit phantomjs oder casperjs erfassen. Ich habe gesehen, dass mitSo erfassen Sie partielle Seiteninhalte mit phatomjs oder casperjs

  1. PhantomJS:

wir page.clipRect verwenden können

var clientRect = document.querySelector(selector).getBoundingClientRect(); 
page.clipRect = { 
      top: clientRect.top, 
      left: clientRect.left, 
      width: clientRect.width, 
      height: clientRect.height 
     } 
}; 
page.render(out.png); 
  1. casperjs

wir kann verwenden:

casper.capture(String targetFilepath, [Object clipRect, Object imgOptions]) 
    or 
casper.captureSelector(String targetFile, String selector [, Object imgOptions]) 

aber alle oben genannten Codes funktionieren nur mit Bildern (jpg, png, ect), nicht mit pdf.

Wie kann ich einen partiellen Seiteninhalt erfassen, um eine PDF zu rendern?

Antwort

0

Nach Stunden googeln, komme ich ohne hilfreiche Antwort heraus. Es scheint, dass weder Casperjs noch Phantomjs Eigenschaften haben, um damit umzugehen. Ich könnte falsch liegen, jede Korrektur wird zu schätzen wissen.

Um dies zu umgehen, habe ich gesehen, dass Sie alle anderen Selektor in der Dom ausblenden müssen und behalten Sie die, die wir rendern möchten.

In Ihrem evaluate() Methode, müssen Sie tun:

  1. PhantomJS

    page.evaluate(function(){ 
    $("#maps").appendTo('body'); 
    $('body > :not(#maps)').hide(); 
    }) 
    

dann

page.render('out.pdf'); 
  1. casperjs

    casper.thenEvaluate(function() { 
    $("#maps").appendTo('body'); 
    $('body > :not(#maps)').hide(); 
    
    }); 
    

werden Jede andere Lösung zu schätzen wissen werden.