There is a white space on my html2canvas
and I am not sure what is going on. This is my code so far.
function doFunction() {
html2canvas(document.querySelector("#capture"), ).then(canvas => {
$("body").append(canvas);
});
}
$("button").click(function() {
doFunction();
});
div {
box-sizing: border-box;
font-family: 'ABeeZee', sans-serif;
}
body {
background-color: red;
}
#capture {
width: 900px;
height: 900px;
background-color: aqua;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="http://html2canvas.hertzen.com/dist/html2canvas.js"></script>
<div id="capture">
Hello
</div>
<button type="button">Click Me!</button>
This is the appended canvas. Notice there is a white space on the top. How can I remove it?
GitHub Issue
You should check the document scroll, i face the same issue when page scroll is active or when page is scrolled down.
Try adding
{
scrollX: 0,
scrollY: -window.scrollY
}
to the html2canvas options
Following code worked for me
html2canvas(element , {
scrollX: -window.scrollX,
scrollY: -window.scrollY,
windowWidth: document.documentElement.offsetWidth,
windowHeight: document.documentElement.offsetHeight
})
I had a similar issue and through some trials I realised that by scrolling to the top of the page before generating the pdf solved it.
So I added this line to scroll to the top of the page before generating the pdf and it worked:
window.scrollTo(0,0);
try adding this to your style css
*{
margin:0;
padding:0;
}
Also try to clear your browser cache, this would be the problem in most cases. If that doesn't work try to remove all your css styles and add them back one by one to see when and how it is being caused.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With