Sim, é possível capturar div como PDFs em JS. Você pode verificar a solução fornecida por https://grabz.it . Eles têm uma API JavaScript agradável e limpa que permite capturar o conteúdo de um único elemento HTML, como um div ou um intervalo.
Então, para usá-lo, você precisará de uma chave + app e do SDK gratuito . O uso dele é o seguinte:
Digamos que você tenha um HTML:
<div id="features">
<h4>Acme Camera</h4>
<label>Price</label>$399<br />
<label>Rating</label>4.5 out of 5
</div>
<p>Cras ut velit sed purus porttitor aliquam. Nulla tristique magna ac libero tempor, ac vestibulum felisvulput ate. Nam ut velit eget
risus porttitor tristique at ac diam. Sed nisi risus, rutrum a metus suscipit, euismod tristique nulla. Etiam venenatis rutrum risus at
blandit. In hac habitasse platea dictumst. Suspendisse potenti. Phasellus eget vehicula felis.</p>
Para capturar o que está sob o ID de recursos, você precisará:
<script type="text/javascript" src="grabzit.min.js"></script>
<script type="text/javascript">
GrabzIt("KEY", "SECRET").ConvertURL("http://www.example.com/my-page.html",
{"target": "#features", "format": "pdf"}).Create();
</script>
Você precisa substituir o http://www.example.com/my-page.html
pelo seu URL de destino e #feature
por seu seletor de CSS.
Isso é tudo. Agora, quando a página é carregada, uma captura de tela da imagem será criada no mesmo local da tag do script, que conterá todo o conteúdo dos recursos div e nada mais.
Existem outras configurações e personalizações que você pode fazer no mecanismo div-screenshot, verifique-as aqui