ํ๋ฅญํ ๋์๊ด์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๋ด๊ฐ ์ฃผ๋ชฉํ๋ ํ ๊ฐ์ง๋ ๋ ํฐ ๋ ๋์คํ๋ ์ด๋ฅผ ์ฌ์ฉํ ๋ ์คํฌ๋ฆฐ ์ท์ด ํ๋ฆฟํ๋ค๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์์ https://github.com/niklasvh/html2canvas ์ ์คํฌ๋ฆฐ ์ท์ด ๋ ํฐ ๋ ๋์คํ๋ ์ด์์ ๋ณด์ด๋ ๋ชจ์ต์
๋๋ค ( ํ
์คํธ ํ์ด์ง ์์ ๊ฐ์ ธ์จ ๊ฒ๊ณผ ๊ฐ์).
์บ๋ฒ์ค ๋ ๋๋ง ์ด๋๊ฐ์ window.devicePixelRatio
์ context.backingStorePixelRatio
์ฌ์ด์ ๋น์จ์ ํ์ธํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค ...?
์ถ์ ๋ค์์ ๋ฌธ์ ์ ์์ธ์ ์ฐพ์ผ๋ ค๊ณ ์๋ํ๋ฉด์ ์ฐพ์ ์ ์ฉํ ๋งํฌ์ ๋๋ค.
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ฅญํ์ง๋ง ๊ทธ๊ฒ์ ๊ฒฝํํฉ๋๋ค. # 379, # 373, # 340, # 203, # 312, # 158, # 390์์ ์ธ๊ธ ํ ๊ฒ๊ณผ ๊ฐ์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
https://github.com/niklasvh/html2canvas/pull/127 ํ๋ฆฟํ ๋ถ๋ถ ์์
๊ณ ์ ๋์ง ์์
: +1 :
+1 ์์ ํด์ฃผ์ธ์
+1 scalling ๋ฐ zooming CSS ์คํ์ผ์ด ์ ๋๋ก ์๋ํ์ง ์์ต๋๊น? ์คํฌ๋ฆฐ ์ท์ ์ฐ๋ html์ ํ๋ / ์ถ์ํ์ฌ ํด๊ฒฐํ ์ ์์ผ๋ฉฐ ๋ ์ ๋ช ํ๊ฒ ๋ณด์ผ ๊ฒ์ ๋๋ค.
+1 ์์ ํด์ฃผ์ธ์
+1 ์์
์๋
ํ์ธ์.
ํ๋,์ด ๊ตฌ์ฑ์ ์๋ํด๋ณด์ธ์. 100 % ํด๊ฒฐ์ด ์๋๋ผ ํ์ง์ด ํฅ์๋ฉ๋๋ค.
html2canvas (document.getElementById ( 'flag'), {
useCORS : true,
allowTaint : true,
letterRendering : true,
onrendered : function (canvas) {
var ctx = canvas.getContext ( '2d');
ctx.webkitImageSmoothingEnabled = false;
ctx.mozImageSmoothingEnabled = false;
ctx.imageSmoothingEnabled = ๊ฑฐ์ง;
},
});
@breim
Bro ๏ผ 3Q๊ฐ ๋์์ ์ฒญํฉ๋๋ค.ํ์ง๋ง ๊ทธ๋ค์ง ๋ช
ํํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ ํฐ ๋ ์ฅ์น์ ๋ ๋๋ง ๋ฌธ์
๊ณ ์ณ์ฃผ์ธ์!
+1 ์์ ํด์ฃผ์ธ์
Plz๋ ๊ทธ๊ฒ์ ๊ณ ์ณ, Orz
+1
๋ถ๋ช ํ ๊ธฐ์กด ์บ๋ฒ์ค๋ฅผ ๋ ๋๋ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค (๋ ํฐ ๋์ ํ์๋๋๋ก ๋ฏธ๋ฆฌ ๊ตฌ์ฑ ํ ์ ์์).
์:
var w = 1000;
var h = 1000;
var div = document.querySelector('#divtoconvert');
var canvas = document.createElement('canvas');
canvas.width = w*2;
canvas.height = h*2;
canvas.style.width = w + 'px';
canvas.style.height = h + 'px';
var context = canvas.getContext('2d');
context.scale(2,2);
html2canvas(div, { canvas: canvas }).then(function(canvas) {
// do what you want
});
@MisterLamb ๊ทํ์ ์๋ฃจ์ ์ ํ๋ฅญํ๊ฒ ์๋ํฉ๋๋ค.
๋๋ ๋ํ ์ด๊ฒ์ ์์ ํ๊ณ ์ถ์ต๋๋ค
+1
+1 ์์
@MisterLamb ๋๋ ๊ทํ์ ์๋ฃจ์
์ ์๋ํ๊ณ ์์ง๋ง ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ์๋ฌด๊ฒ๋ํ์ง ์๋ ๊ฒ ๊ฐ์ ์์ ์ผ๋ก์ด ๋ฐ์ด์ฌ๋ฆฐ ์ ๋ง๋ค์์ต๋๋ค. ๋ด๊ฐ ๋ญ ์๋ชปํ๊ณ ์๋์ง ์์ญ๋๊น? ๋ฐ์ด์ฌ๋ฆฐ์ ๋ฒํผ์ ํด๋ฆญํ๊ณ ์ฌ๋ฌ ํ์ผ์ ๋ค์ด๋ก๋ํ์ฌ ํ
์คํธํ๊ณ ์ด ๊ตฌํ์์ ๋์ผํ ์ง ํ์ธํ ์ ์์ต๋๋ค.
@MisterLamb ์ ๋ฐฉ๊ธ 0.5.0-alpha1๋ก ๋ณ๊ฒฝ๋์์ผ๋ฉฐ ๋ ์ ์๋ ํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ์ ๋ฐ์ดํธ
+1
@MisterLamb et al, ์ค๋ ๋ฐฉ๊ธ ์๋
ํธ์ง : ์๋ง ๋ด ๋ฒ๊ทธ, ๋ณ๊ฒฝ๋ ๋ฐ์ด์ฌ๋ฆฐ ์ ๊ด์ฐฎ์ต๋๋ค.
ํธ์ง 2 : ๋ฒ์๋ฅผ ์ขํ ์ ์์๊ณ , ์ด์ ๊ฐ์ด ๋ค์ ๊ตฌํํ์ผ๋ฉฐ ์ด์ ๋ ์ฝ๊ฐ์ ์คํ์ ์ด ์์ง๋ง ๋ณด์ด๋ ๊ฒ์ด ์์ต๋๋ค. ์๋ง๋ h2c๊ฐ ์์ ํ ์ง์ํ์ง ์๋ ์คํ์ผ์ด ์๊ณ ๊ฒฐ๊ณผ๊ฐ ์๋ง์ ๋๋ค.
ํธ์ง 3 : ์, ์คํ์ ์ ์ ๊ฑฐํ๊ธฐ ์ํด document.body๋ก ์ด๋ํด์ผํ์ต๋๋ค.
@MisterLamb ๋น์ ์ ์ง์ ํ ์ฒ์ฌ์ ๋๋ค. ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค ... ๋ด ํ๋ฃจ๋ฅผ ๊ตฌํ์ต๋๋ค.
@MisterLamb ๋น์ ์ ์ต๊ณ ์ ๋๋ค ๐
@makc ๋๋! ๋น ์บ๋ฒ์ค ๊ฐ์ ธ ์ค๊ธฐ-์์ฒด ์บ๋ฒ์ค๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋ ๋๋ง๋ฉ๋๋ค.
์ฐธ๊ณ ๋ก- @eKoopmans ์๋ฃจ์ ์ ์ง๊ธ๊น์ง ํ ์คํธ์์ ์ ์๋ํฉ๋๋ค : https://github.com/niklasvh/html2canvas/pull/1087 .. ํ์ฌ ์คํ ์ค
# 1087์ ์ฐฌ์ฑํ์ฌ ๋ง๊ฐ
@MisterLamb ๊ทธ๋ฌ๋ ์ด๋ฏธ์ง์ ํด์๋๋ฅผ ํฅ์์ํค๋ ๋ฐฉ๋ฒ ??
์ด ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๋ ค๊ณ ํ ๋ 96dpi๋ก ์ ์ฅํ๋ฉด 300dpi ์ด๋ฏธ์ง๊ฐ ํ์ํฉ๋๋ค. ๋ด๊ฐ ์ด๋ป๊ฒ ํ ์ ์๋ ??
@ shivtumca12 ์ต์ ๋ฆด๋ฆฌ์ค ์ธ v1.0.0-alpha.1 ์์๋ scale
์ต์
์ ์ฌ์ฉํ์ฌ ํด์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค ( scale: 2
๋ ๊ธฐ๋ณธ 96dpi์์ ํด์๋๋ฅผ ๋ ๋ฐฐ๋ก ๋๋ฆผ).
// html2canvas๋ฅผ ํธ์ถํ๊ธฐ ์ ์ 90 % ํ๋ ํ ๋ค์ ๋ค์ 100 %๋ก ํ๋ํฉ๋๋ค.
document.body.style.zoom = '99 % ';
html2canvas (document.querySelector ( "# content"), {allowTaint : false, widht : _width, height : _height}). then (function (canvas) {
// var pdf = new jsPDF('p','pt','a4');
// pdf.addImage(canvas.toDataURL("image/png"), 'PNG', 10, 10, 580, 0)
// pdf.save('Grafico.pdf');
var link = document.createElement('a');
link.href = canvas.toDataURL("image/png");
link.download = 'Dashboard.png';
document.body.appendChild(link);
link.click();
link.style.display = 'none';
document.body.removeChild(link)
document.body.style.zoom = '100%';
$('.preloader-wrapper').hide();
});
@MisterLamb ์์ ์๋ฃจ์ ์ html ํ์ด์ง์ ํ ์คํธ์ ๋ํด ์๋ํฉ๋๋ค. ํ ์คํธ๋ฅผ ํ์ํ๋ ๋์ ์ด๋ฏธ์ง์ ํ ์คํธ๋ฅผ ํ๋ฅญํ๊ฒ ๋ณํํฉ๋๋ค. ๊ทธ๋ฌ๋ html ํ์ด์ง์ ์ด๋ฏธ์ง ๋ด์ฉ (์ด๋ฏธ์ง)์ ์ฌ์ ํ โโํ๋ฆฟํ๊ฒ ํ์๋ฉ๋๋ค. ์ด๋ป๊ฒ ์์ ํ ์ ์๋์ง ์กฐ์ธ ํด์ฃผ์ธ์.
์ด๋ฏธ์ง๋ ์ฌ์ ํ ํ๋ฆฟํฉ๋๋ค.
window.devicePixelRatio = 2;
๋๋ html2canvas๋ฅผํ๊ธฐ ์ ์ ์ด๊ฒ์ ๋ฃ์๊ณ ๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
์๋
ํ์ธ์, ํ๋ฅด์์์ด ํ
์คํธ utf8์ ์
๋ ฅํ๊ณ ์ถ์ง๋ง ๊ธ๊ผด์ด ์๋ํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
http://jsfiddle.net/o0a8pbwd/1/ ์ฝ๋๋ก
์ด ๊ทธ๋ฆผ์ ์ ์์ง ๋ชปํฉ๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ถ๋ช ํ ๊ธฐ์กด ์บ๋ฒ์ค๋ฅผ ๋ ๋๋ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค (๋ ํฐ ๋์ ํ์๋๋๋ก ๋ฏธ๋ฆฌ ๊ตฌ์ฑ ํ ์ ์์).
์: