рдирдорд╕реНрддреЗ, рдореИрдВ рдПрдХ div рдХрд╛ рд╕реНрдХреНрд░реАрди рд╢реЙрдЯ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ
рдпрд╣ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬрд┐рд╕рдХреА рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдереА
рдПрдЪрдЯреАрдПрдордПрд▓:
<div` id="visible">
hello there!!
</div>
<div id="hidden" style="display:none">
You can't see me :P
</div>
рдЬреЗрдПрд╕:
var elem1=$("#hidden");
if(!elem1.is(":visible"))
{
elem1.show();elem1.fadeIn(1);elem1.fadeOut(1);
}
html2canvas(elem1).then(function(canvas){
$("body").append(canvas);
});
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рддреНрд░реБрдЯрд┐:
**
рдзреНрдпрд╛рди рдореЗрдВ рди рдЖрдпрд╛ рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: nullhtml2canvas @ html2canvas.js:941 (рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди) @ HtmlPage рдХреА рд╕рдВрдкрддреНрддрд┐ 'рд▓рдВрдмрд╛рдИ' рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ред рдПрдЪрдЯреАрдПрдордПрд▓:13
**
рдореЗрд░реЗ рдмреЗрд▓рд╛: https : //jsfiddle.net/h39tp0Ly/2/
рдХреГрдкрдпрд╛ рдЗрд╕рдореЗрдВ рдореЗрд░реА рд╕рд╣рд╛рдпрддрд╛ рдХрд░реЗрдВ
Html2canvas рдкреНрд░рджрд░реНрд╢рди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛
рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж !
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ div рдореЗрдВ рд╕реАрдПрд╕рдПрд╕ рд╣реИ рдЬреЛ " рдбрд┐рд╕реНрдкреНрд▓реЗ: рдХреЛрдИ рдирд╣реАрдВ "
onclone: function(document) {
hiddenDiv = document.getElementById("render");
hiddenDiv.style.display = 'block';
}
рдореБрдЭреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реАред рд╣рдо " рдбрд┐рд╕реНрдкреНрд▓реЗ: рдХреЛрдИ рдирд╣реАрдВ " рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ div рдкрд░ рд╕реАрдПрд╕рдПрд╕ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдКрдкрд░ рдХреА рддрд░рд╣ рд╡рд┐рдХрд▓реНрдк рдСрдирдХреНрд▓реЛрди рдЬреЛрдбрд╝реЗрдВред рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ "рд▓реЙрдЧрд┐рди: рд╕рдЪ" рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ
рдЕрд╕рд▓ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдкреВрд░реНрдг рдФрд░ рд╢реАрд░реНрд╖/рдмрд╛рдПрдВ рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпреВрдкреЛрд░реНрдЯ рд╕реЗ рдХрдВрдЯреЗрдирд░ рдбрд╛рд▓рдиреЗ рдХреА рдЪрд╛рд▓ - рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдпрд╣ NS_ERROR_FAILURE рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреНрд░реЛрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ div рдЕрджреГрд╢реНрдп рдФрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реЛ, рддреЛ рд╕реАрдПрд╕рдПрд╕ рдЧреБрдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВ
height: 0%
overflow:hidden
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ @ kchen1025
рдореИрдВрдиреЗ рд▓рдХреНрд╖реНрдп div рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХреИрдирд╡рд╛рд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдХреИрдирд╡рд╛рд╕ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж div рдХреЛ рдЫреБрдкрд╛рдпрд╛ред рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред
рдореЗрд░рд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<div id="capture">
...
</div>
<div id="end"></div>
html2canvas(document.querySelector("#capture")).then(canvas => {
$("#end").append(canvas)
$("#capture").hide()
});
рд╣реИрд▓реЛ, рдореИрдВ "jsPdf" рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдбреАрдПрдл рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп 6 рдФрд░ "html2canvas" рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ .... рдореИрдВ рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП div рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЬрдм рддрдХ рдореИрдВ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХрд░ рд▓реЗрддрд╛ рддрдм рддрдХ рдореИрдВ рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛
рдХреИрдкреНрдЪрд░ рдЖрдИрдбреА "рдПрдЪрдЯреАрдПрдордПрд▓-рдкреАрдбреАрдПрдл" рдХреЗ рд╕рд╛рде div рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
"рдПрдЪрдЯреАрдПрдордПрд▓"
` рдЫрд╛рддреНрд░ рдХрд╛рд░реНрдб /рдП>
рдбрд┐рд╡ рдЖрдИрдбреА = "рдкреАрдбреАрдПрдл" *рдПрдирдЬреАрдЖрдИрдПрдл = "рдЯреЗрд╕реНрдЯ" рд╕реНрдЯрд╛рдЗрд▓ = "рдЯреЗрдХреНрд╕реНрдЯ-рдПрд▓рд╛рдЗрди: рд╕реЗрдВрдЯрд░; рдорд╛рд░реНрдЬрд┐рди-рдЯреЙрдк: 5 рдкреАрдПрдХреНрд╕;">
рдбрд┐рд╡ рдЖрдИрдбреА = "рдПрдЪрдЯреАрдПрдордПрд▓-рдкреАрдбреАрдПрдл">
/рджрд┐рд╡
/div`
"js рдпрд╛ рдХреЛрдгреАрдп рдореЗрдВ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рд╣реИ"
`рдбрд╛рдЙрдирд▓реЛрдб2 () {
рд╡рд░ imgcab: рд╕реНрдЯреНрд░рд┐рдВрдЧ;
imgcab = this.base64logo.trim ();
html2canvas (document.getElementById ('html-pdf'), {рд╕реНрдХреЗрд▓:2})ред рддрдм (рдлрд╝рдВрдХреНрд╢рди (рдХреИрдирд╡рд╛рд╕) {
var img = рдХреИрдирд╡рд╛рд╕.toDataURL ("рдЫрд╡рд┐ / png", 1);
рд╡рд░ рдбреЙрдХреНрдЯрд░ = рдирдпрд╛ рдЬреЗрдПрд╕рдкреАрдбреАрдПрдл ({
рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕: 'рдкреА',
рдЗрдХрд╛рдИ: 'рдорд┐рдореА',
рдкреНрд░рд╛рд░реВрдк: 'рдкрддреНрд░',
});
doc.addImage (рдЖрдИрдПрдордЬреА, 'рдкреАрдПрдирдЬреА', 2,2,212,272);
doc.addImage (imgcab, 'JPEG', 5, 5,30,30);
doc.save ('testCanvas.pdf');
});`
рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╕реНрдХреНрд░реАрди рдХреЗ рдЕрдВрджрд░ рдбрд┐рд╡ рдХреЛ рдЫреБрдкрд╛рдирд╛ред
"рд╕реАрдПрд╕рдПрд╕"
#pdf {
overflow: hidden;
height: 0;
}
рдХреЛрдб "рдПрдЪрдЯреАрдПрдордПрд▓-рдкреАрдбреАрдПрдл" div рдХреЗ рдХреИрдкреНрдЪрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдбреАрдПрдл рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдЫрд┐рдкреЗ рд╣реБрдП div "рдкреАрдбреАрдПрдл" рдХреЗ рдЕрдВрджрд░ рд╣реИ ...
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдирдХреА рд╕реЗрд╡рд╛ рдХрд░реЗрдВрдЧреЗ
рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрдкреЗрдирд┐рд╢ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЪрд┐рд▓реА рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ onclone
рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, https://stackoverflow.com/a/51049443/2251303
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣реИрд▓реЛ, рдореИрдВ "jsPdf" рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдбреАрдПрдл рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп 6 рдФрд░ "html2canvas" рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ .... рдореИрдВ рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП div рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЬрдм рддрдХ рдореИрдВ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХрд░ рд▓реЗрддрд╛ рддрдм рддрдХ рдореИрдВ рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛
рдХреИрдкреНрдЪрд░ рдЖрдИрдбреА "рдПрдЪрдЯреАрдПрдордПрд▓-рдкреАрдбреАрдПрдл" рдХреЗ рд╕рд╛рде div рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
"рдПрдЪрдЯреАрдПрдордПрд▓"
` рдЫрд╛рддреНрд░ рдХрд╛рд░реНрдб /рдП>
рдбрд┐рд╡ рдЖрдИрдбреА = "рдкреАрдбреАрдПрдл" *рдПрдирдЬреАрдЖрдИрдПрдл = "рдЯреЗрд╕реНрдЯ" рд╕реНрдЯрд╛рдЗрд▓ = "рдЯреЗрдХреНрд╕реНрдЯ-рдПрд▓рд╛рдЗрди: рд╕реЗрдВрдЯрд░; рдорд╛рд░реНрдЬрд┐рди-рдЯреЙрдк: 5 рдкреАрдПрдХреНрд╕;">
рдбрд┐рд╡ рдЖрдИрдбреА = "рдПрдЪрдЯреАрдПрдордПрд▓-рдкреАрдбреАрдПрдл">
/рджрд┐рд╡
/div`
"js рдпрд╛ рдХреЛрдгреАрдп рдореЗрдВ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рд╣реИ"
`рдбрд╛рдЙрдирд▓реЛрдб2 () {
рд╡рд░ imgcab: рд╕реНрдЯреНрд░рд┐рдВрдЧ;
imgcab = this.base64logo.trim ();
html2canvas (document.getElementById ('html-pdf'), {рд╕реНрдХреЗрд▓:2})ред рддрдм (рдлрд╝рдВрдХреНрд╢рди (рдХреИрдирд╡рд╛рд╕) {
var img = рдХреИрдирд╡рд╛рд╕.toDataURL ("рдЫрд╡рд┐ / png", 1);
рд╡рд░ рдбреЙрдХреНрдЯрд░ = рдирдпрд╛ рдЬреЗрдПрд╕рдкреАрдбреАрдПрдл ({
рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕: 'рдкреА',
рдЗрдХрд╛рдИ: 'рдорд┐рдореА',
рдкреНрд░рд╛рд░реВрдк: 'рдкрддреНрд░',
});
doc.addImage (рдЖрдИрдПрдордЬреА, 'рдкреАрдПрдирдЬреА', 2,2,212,272);
doc.addImage (imgcab, 'JPEG', 5, 5,30,30);
doc.save ('testCanvas.pdf');
});`
рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╕реНрдХреНрд░реАрди рдХреЗ рдЕрдВрджрд░ рдбрд┐рд╡ рдХреЛ рдЫреБрдкрд╛рдирд╛ред
"рд╕реАрдПрд╕рдПрд╕"
#pdf { overflow: hidden; height: 0; }
рдХреЛрдб "рдПрдЪрдЯреАрдПрдордПрд▓-рдкреАрдбреАрдПрдл" div рдХреЗ рдХреИрдкреНрдЪрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдбреАрдПрдл рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдЫрд┐рдкреЗ рд╣реБрдП div "рдкреАрдбреАрдПрдл" рдХреЗ рдЕрдВрджрд░ рд╣реИ ...
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдирдХреА рд╕реЗрд╡рд╛ рдХрд░реЗрдВрдЧреЗ
рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрдкреЗрдирд┐рд╢ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЪрд┐рд▓реА рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;