2016-04-28 42 views
0

如何使用phantomjs或casperjs捕獲部分頁面內容。 我已經看到,與如何使用phatomjs或casperjs捕獲部分頁面內容

  1. Phantomjs:

我們可以使用page.clipRect

var clientRect = document.querySelector(selector).getBoundingClientRect(); 
page.clipRect = { 
      top: clientRect.top, 
      left: clientRect.left, 
      width: clientRect.width, 
      height: clientRect.height 
     } 
}; 
page.render(out.png); 
  • casperjs
  • 我們可以使用:

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

    但上面提到的所有代碼僅適用於圖像(jpg,png,ect),而不適用於pdf。

    如何捕獲部分頁面內容來渲染pdf?

    回答

    0

    花費了幾個小時後,我沒有得到任何有幫助的答案。似乎casperjs或phantomjs都沒有屬性來處理這個問題。我可能是錯的,任何更正將不勝感激。

    爲了解決這個問題,我已經看到你必須隱藏dom中的所有其他選擇器並保留我們想要呈現的選擇器。

    在你evaluate()方法,必須做到:

    1. Phantomjs

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

    然後

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

    casper.thenEvaluate(function() { 
    $("#maps").appendTo('body'); 
    $('body > :not(#maps)').hide(); 
    
    }); 
    
  • 任何其他解決方案將被理解的。

    相關問題