Html2canvas: HTML2canvas, ์ด๋ฏธ์ง€ ํšŒ์ „์„ ์‚ฌ์šฉํ•  ๋•Œ ์บ”๋ฒ„์Šค๊ฐ€ ์ž˜๋ฆผ

์— ๋งŒ๋“  2017๋…„ 06์›” 01์ผ  ยท  22์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: niklasvh/html2canvas

์•ˆ๋…•ํ•˜์„ธ์š”,

์ด ํ”„๋กœ์ ํŠธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
HTML2PDF๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ html2canvas์—์„œ ์ด๋ฏธ์ง€ ํšŒ์ „์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.
ํšŒ์ „ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์•„๋ž˜์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ์—์„œ ์ž˜๋ฆฌ๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐฐ์น˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค : https://jsfiddle.net/yynmre4k/

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค,

๋ชจ๋“  22 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @ amine86 , ์ด๊ฒƒ์€ html2canvas๊ฐ€ ๋ณ€ํ™˜ ๋œ ์š”์†Œ์˜ ํด๋ฆฌํ•‘์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ฌธ์ œ์ด๋ฉฐ, ์ด ํ’€ ์š”์ฒญ ์—์„œ ์ˆ˜์ •ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ๋Š” html2canvas ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ๋ฒ„์ „์˜ Fiddle์„ ๋งŒ๋“ค์—ˆ ์—ฌ๊ธฐ ์—๋Š” ํ’€ ์š”์ฒญ์ด ํ†ตํ•ฉ๋˜์ง€ ์•Š์€ ์›๋ณธ html2canvas๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ„์ „๋„

html2canvas์—์„œ ํด๋ฆฌํ•‘์ด ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ์‹์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. transform: translate() ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ํšŒ์ „์€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜์—†๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @eKoopmans ๋„์›€์„ ์ฃผ์…”์„œ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ์•Š๊ณ ๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž˜ ์ž‘๋™ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ html์„ ์บ”๋ฒ„์Šค๋กœ ๋˜๋Š” html์„ svg๋กœ ๋ณ€ํ™˜ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ณ„์…จ์Šต๋‹ˆ๊นŒ? ๋ผ์ด์„ผ์Šค ๊ตฌ๋งค์— ํ•„์š”ํ•œ ์†์ž„์ˆ˜๋ผ๋„?

๋‹น์‹ ์˜ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

@ amine86 ์•ˆ๋…•ํ•˜์„ธ์š”. SVG๋ฅผ ํ†ตํ•ด HTML์„ ๋ Œ๋”๋ง ํ•œ ๋‹ค์Œ ์บ”๋ฒ„์Šค๋กœ ๋ Œ๋”๋งํ•˜๋Š”์ด ์ ‘๊ทผ ๋ฐฉ์‹์— ์šด์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Drawing_DOM_objects_into_a_canvas

html2canvas์™€ ์œ ์‚ฌํ•œ rasterizeHTML ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์–ด๋Š ์ชฝ ์ ‘๊ทผ๋„ ๋งŽ์ด ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ๋‹น์‹ ์„ ์œ„ํ•ด ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค!

Hi @ekoopmans

 RasterizeHTML does not work good on some browser,
 I tried to find a solution but without succes for html2canvas, the result is not the same, on each test with a rotate I got a different design,  I think I will switch to try to create my design with imageGD from php librairie,

Anyway I want to thank you for your feedback and helps, thanks my friend,

0.5.0-beta4์—์„œ ์ด์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•˜๊ณ  ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๊ทธ ๋ถ€๋ถ„ ์ฝ”๋“œ๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ!

์•ˆ๋…•ํ•˜์„ธ์š” @CreativForm, ๊ทธ๋ž˜ ๊ทธ๊ฒƒ์€ ์ข‹์€ ์•„์ด๋””์–ด @eKoopmans ๋‹น์‹ ์ด ์šฐ๋ฆฌ๋ฅผ ๋„์šธ ์ˆ˜์žˆ์–ด?

์•ˆ๋…•ํ•˜์„ธ์š”, ์–ด๋–ค ํ…Œ์ŠคํŠธ ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ CSS ๋ณ€ํ™˜ ์ž๋ฅด๊ธฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ ํ•œ ์ž‘์—…์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@eKoopmans ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์œผ์‹ ๊ฐ€์š”?
์ด๋ฏธ html2PDF ๋ชจ๋“ˆ์— ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ ํ–ˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค,

์•ˆ๋…•ํ•˜์„ธ์š” @ amine86 , ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์•ˆํƒ€๊น๊ฒŒ๋„ ์ง„ํ–‰์ด ์•ˆ ๋ผ์š” ... ๋“œ๋””์–ด ์ฝ”๋”ฉ์œผ๋กœ ๋Œ์•„๊ฐˆ ์‹œ๊ฐ„์ด ์ƒ๊ฒผ์œผ๋‹ˆ ๊ณงํ•ด๋ณผ ์ˆ˜ ์žˆ์„์ง€ ์•Œ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @eKoopmans , ํšŒ์‹  ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ณง ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @eKoopmans ,์ด ํšŒ์ „ ๋ฌธ์ œ์— ๋Œ€ํ•œ "html2PDF"๋ชจ๋“ˆ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๊ดœ์ฐฎ

๊ฐ์‚ฌ,

์•„๋‹ˆ์š”. ์•Œ๋ฆผ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋‚ด๊ฐ€ ์˜ค๋žœ ์ค‘๋‹จ ๋์— ๋ฐฉ๊ธˆ ํ”„๋กœ์ ํŠธ๋กœ ๋Œ์•„ ์™”๋‹ค๋Š” ๊ฒƒ์„ ๋ˆˆ์น˜ ์ฑ„ ์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ช‡ ๊ฐ€์ง€ ๋‹ต๋ณ€์„ ๋ณด์œ  ์ˆ˜, ๋ฐ”๋กœ ์–ด์ œ v1.0.0 ๊ฐœ๋ฐœ์ž ์•ŒํŒŒ๋ฅผ ์ถœ์‹œ @niklasvh์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค!

@niklasvh ๋‹น์‹ ์ด ์ฝ๊ณ  ์žˆ๋‹ค๋ฉด, ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. html2canvas์— ๋„์›€์„ ๋“œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ž˜ ๋˜๊ธธ ๋ฐ”๋ž˜์š”!

์•ˆ๋…•ํ•˜์„ธ์š” @eKoopmans ๋น ๋ฅธ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
์˜ˆ, ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์ง€๋งŒ ํšŒ์ „์„ ์‚ฌ์šฉํ•  ๋•Œ ํ•ญ์ƒ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค (๊ฒฐ๊ณผ๊ฐ€ ์ž˜๋ฆผ).
์ด ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” "html2pdf"์— ์‚ฌ์šฉํ•˜๋Š” "์Šค์ผ€์ผ"์„ ๋†“์ณค์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณต ํ–ˆ์Šต๋‹ˆ๊นŒ?

@amineeg html2canvas ๋˜๋Š” html2pdf์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

html2canvas์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์—๋Š” dpi ๊ฐ€ ์—†์ง€๋งŒ scale ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ํด๋ฆฌํ•‘ ๋ฐ CSS ๋ณ€ํ™˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

@eKoopmans ์˜ˆ, ๋งž์Šต๋‹ˆ๋‹ค. ์Šค์ผ€์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.์ด ํšŒ์ „ ๋ฌธ์ œ๊ฐ€ ๊ณง ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๋‹น์‹ ์˜ ๋„์›€์„ ์ฃผ์…”์„œ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์Šค์ผ€์ผ์— ํด๋ฆฌํ•‘ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋” ํฐ ์ด๋ฏธ์ง€๋กœ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋ฉด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค (fe transform scale (1.4))
๋” ์ž‘์€ ์ด๋ฏธ์ง€๋กœ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ์ž˜๋ฆฝ๋‹ˆ๋‹ค (fe transform scale (0.6)).

์•ˆ๋…•ํ•˜์„ธ์š” @eKoopmans ,์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ํšŒ์ „ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @eKoopmans @CreativForm ,

์ด ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ,

์•ˆ๋…• @amineeg ๋‚ด ํŽธ์—์„œ, ๋‚˜๋Š” @eKoopmans ๊ฐ€ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋งํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. :)

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @CreativForm , @eKoopmans @niklasvh ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@eKoopmans ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์›€์ง์ž„์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฐฝ์„ ๋งจ ์œ„๋กœ ์Šคํฌ๋กคํ•˜์‹ญ์‹œ์˜ค.

window.scrollTo(0,0);

์ด ์†”๋ฃจ์…˜์„ ์ง์ ‘ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์Œ์„ ๋ณด์ฆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. html2canvas์˜ ๋ฒ„๊ทธ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด์œ ๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์š”์†Œ๊ฐ€ ์™„์ „ํžˆ ํ™”๋ฉด์„ ๋ฒ—์–ด๋‚œ ๊ฒฝ์šฐ์—๋„ ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งจ ์œ„๋กœ ์Šคํฌ๋กค๋˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์บก์ฒ˜ ํ•œ ์บ”๋ฒ„์Šค ์ด๋ฏธ์ง€๊ฐ€ ์–ผ๋งˆ๋‚˜ ์Šคํฌ๋กค๋˜์—ˆ๋Š”์ง€์— ๋”ฐ๋ผ ์ˆ˜์ง์œผ๋กœ ์˜คํ”„์…‹ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์›์ธ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒํ•˜๋ฉด ๊ฒฐ๊ณผ ์ด๋ฏธ์ง€๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋†’์ด๋ฅผ ๊ฐ€์ง€์ง€ ๋งŒ ์œ„์ชฝ์—์„œ X ํ”ฝ์…€ ์ˆ˜๋งŒํผ ์˜คํ”„์…‹์ด ์‹œ์ž‘๋˜์–ด ์ด๋ฏธ์ง€ ์œ„์ชฝ์— ๋นˆ ๊ณต๊ฐ„์ด ์ƒ๊น๋‹ˆ๋‹ค.

์ฐธ์กฐ : https://stackoverflow.com/questions/40349075/html2canvas-image-is-getting-cut

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰