Html2canvas: toDataURL . рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддреНрдкрдиреНрди рдЫрд╡рд┐ рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЬреБрд▓ре░ 2013  ┬╖  58рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: niklasvh/html2canvas

рдпрд╣ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЕрдзрд┐рдХ рд╣реИред рдореИрдВ рд▓реМрдЯрд╛рдП рдЧрдП canvas рдкрд░ toDataURL рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреАрдПрдирдЬреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред рд▓реЗрдХрд┐рди рдЫрд╡рд┐ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдзреБрдВрдзрд▓реА/рдЦрд░рд╛рдм рд╣реИред рдореИрдВрдиреЗ рдХреБрдЫ рдЧреБрдЧрд▓ рдХрд┐рдпрд╛ рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рд┐рд░реНрдл 96 рдбреАрдкреАрдЖрдИ рдкрд░ рдПрдХ рдЫрд╡рд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЗрд╕реЗ рд╕реБрдзрд╛рд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорд╛рдирдХ рддрд░реАрдХрд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА toDataURLHD рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ html2canvas рдПрдХ рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкрд░ рдПрдХ рдЫрд╡рд┐ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдбреАрдУрдПрдо рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдбреАрдУрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╕рднреА рдЧрдгрдирд╛ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде) рдФрд░ рдлрд┐рд░ рдЬреЛ рднреА рдЫрд╡рд┐ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЙрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдВред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕рдХреЗ рд▓рд┐рдП +1ред рдкреАрдбреАрдПрдл рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП html2canvas рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдзреБрдВрдзрд▓реА рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред

рд╕рднреА 58 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ/рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдмрд╛рдд рд╣реБрдИ рдереА рдФрд░ рдХрд┐рд╕реА рдиреЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХрднреА рднреА рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╡рд┐рд▓рдп рдирд╣реАрдВ рджреЗрдЦрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдп рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдкрд┐рдХреНрд╕реЗрд▓ рдШрдирддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЕрд╕рд░ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╢рд╛рдпрдж рд╣рдо рдЗрд╕реЗ рдЙрдЪреНрдЪ рдбреАрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@missing рд╣рд╛рдБ рдбреАрдкреАрдЖрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрдорд╛рд▓ рд╣реЛрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдЖрдкрдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд┐рдХреНрд╕реЗрд▓ рдШрдирддреНрд╡ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдкрджреНрдзрддрд┐ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдореЗрд░рд╛ рдкреНрд░рд╛рдердорд┐рдХ рдЖрд╡реЗрджрди рдЕрдзрд┐рдХрддрдо 50-рдИрд╢ рд╢рд░реНрддреЛрдВ рдХреЗ рд╢рдмреНрдж рдХреНрд▓рд╛рдЙрдб рдХрд╛ рдкреАрдПрдирдЬреА рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рд╕реЗ рдмрд╣реБрдд рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЫрд╡рд┐ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдпрд╛ рдПрдХ рдзреБрдВрдзрд▓рд╛ рдкреНрд░рднрд╛рд╡ рд╣реИ (рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдХреБрдЫ рдЫрд╡рд┐рдпрд╛рдВ html2canvas рджреНрд╡рд╛рд░рд╛ рдзреБрдВрдзрд▓реА рдкреНрд░рднрд╛рд╡ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ)?

@brcontainer рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЫрд╡рд┐ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдЬреИрд╕реЗ резрежреж% рдЬрд╝реВрдо рдХрд░рдиреЗ рдкрд░ рддрд╕реНрд╡реАрд░ рдареАрдХ-рдард╛рдХ-рдИрд╢ рджрд┐рдЦрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдореИрдВ 5% рднреА рдЬрд╝реВрдо рдХрд░рддрд╛ рд╣реВрдБ рдЖрдк рдлреЛрдЯреЛ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдЧрд┐рд░рд╛рд╡рдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рд╕рдВрд▓рдЧреНрди рдЫрд╡рд┐ рджреЗрдЦреЗрдВред
association-cloud-apple-twitter

рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдХрд░ рдореИрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

http://jsfiddle.net/ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдФрд░ рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред

[рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ]
рдореМрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк html2canvas рджреНрд╡рд╛рд░рд╛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдХреИрдирд╡рд╛рд╕ рдореЗрдВ _zoom_ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк (рдЫрд╡рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

ctx.webkitImageSmoothingEnabled = false;
ctx.mozImageSmoothingEnabled = false;
ctx.imageSmoothingEnabled = false;

рдЖрдкрдХреЛ рдХрд╛рдордпрд╛рдмреА рдорд┐рд▓реЗ

рдирдорд╕реНрддреЗ,

рд╣рдореЗрдВ 96DPI рд╕реЗ рдЕрдзрд┐рдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдореЗрдВ 300 рдбреАрдкреАрдЖрдИ рдХреА рддрд░рд╣ рдФрд░ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ _possible_ html2canvas рдХреЗ рд╕рд╛рде рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЫрд╡рд┐ рдкрд░ рдзреБрдВрдзрд▓рд╛рдкрди рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдзреБрдВрдзрд▓реЗрдкрди рдХреЛ рджреВрд░ рдХрд░реЗ, рдФрд░ рд╣рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдбреАрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░реЗред

рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЙрд╕реА рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрд┐рд╕реА рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЗ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░/рд╕реБрдЭрд╛рд╡?

рдзрдиреНрдпрд╡рд╛рдж

@brcontainer рдореИрдВ рдЕрднреА рдЖрдкрдХрд╛ рд╕рдВрдкрд╛рджрди

                var ctx = canvas.getContext('2d');

                ctx.webkitImageSmoothingEnabled = false;
                ctx.mozImageSmoothingEnabled = false;
                ctx.imageSmoothingEnabled = false;

                var rawData = canvas.toDataURL("image/png");

рдЧрд▓рдд рдХреНрд░рдо рдореЗрдВ рд╣реИ, рдЖрдкрдХреЛ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ "ImageSmoothingEnabled" рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдПрдХ рдирдореВрдирд╛ http://jsfiddle.net рдореЗрдВ рдбрд╛рд▓реЗрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ,

рдореИрдВ toDataURL рдХреА 96dpi рдмрд╛рдзрд╛ рдХреЗ рдмрд┐рдирд╛ рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓реА рдЫрд╡рд┐рдпрд╛рдВ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЪреВрдБрдХрд┐ toDataURLHD рдЕрднреА рддрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЕрдкрдиреЗ рд╕рдкрдиреЗ рдХреЛ рдХреИрд╕реЗ рд╕рд╛рдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ? :-)

рдХрд┐рд╕реА рднреА рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рдж

@brcontainer рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд┐рдХрдирд╛рдИ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реВрдВред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП http://jsfiddle.net/tankchintan/92mra/4/ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ jsfiddle рдмрдирд╛рдпрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реИрдВ! :)

рджреЛрд╕реНрдд рдЖрдк рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, toDataURL рдЬрд┐рд╕реЗ рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛ рд╣реИ, рдЖрдкрдХреЛ CANVAS рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред

рдирдорд╕реНрддреЗ,

рдореИрдВ рдмреЗрд╣рддрд░ рдЫрд╡рд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрди рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред

brcontainer, рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдк рдЬрд┐рди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрдирдХреЗ рд╕рд╛рде рдЖрдк рдЯреИрдВрдХрдЪрд┐рдВрддрди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдЬреЗрдПрд╕ рдкрд╣реЗрд▓реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ/рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рднрд▓реЗ рд╣реА рд╣рдо 2x рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЫрд╡рд┐ рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓реЗрд╢рди рддрдм рднреА рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рдЬрдм рд╣рдо рдЫрд╡рд┐ рдХреЛ 192 рдбреАрдкреАрдЖрдИ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ рджреЛрд╕реНрддреЛрдВ, рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ? рдореИрдВ PhantomJS рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ html2canvas рдХреЗ рд╕рд╛рде рдмреЗрд╣рдж рдкреНрд░реЛ рдЗрдореЗрдЬ рдХреНрд╡рд╛рд▓рд┐рдЯреА рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдЖрдк рдЧреБрдгрд╡рддреНрддрд╛/рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП zoomFactor (рдЕрдиреНрдп рдЯреНрд╡реАрдХреНрд╕ рдХреЗ рдмреАрдЪ) рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░рд╛ рднреА рд╡рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдореБрдЭреЗ рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡реЗрдм рдкреЗрдЬ рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ div рдХреЛ рдПрдХ рдЫрд╡рд┐ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП html2canvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдореИрдВ рдЫрд╡рд┐ рдХреЛ рдкреАрдбреАрдПрдл рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП iTextsharp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрддреНрдкрдиреНрди рдЫрд╡рд┐ рдереЛрдбрд╝реА рдзреБрдВрдзрд▓реА рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрдЦреЛрдВ рдкрд░ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ html2canvas рдореЗрдВ рд╣реА рд╕рдордп рдмрдирд╛рдиреЗ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рдПрдХ рдЫрд╡рд┐ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рдирдорд╕реНрддреЗ,
рдореЗрд░реЗ рдкрд╛рд╕ рдКрдкрд░ рдХреЗ рд╕рдорд╛рди рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
"рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡реЗрдм рдкреЗрдЬ рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдбрд┐рд╡ рдХреЛ рдПрдХ рдЫрд╡рд┐ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП html2canvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЫрд╡рд┐ рдХреЛ рдПрдХ рдкреАрдбреАрдПрдл рдореЗрдВ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВред"
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрддреНрдкрдиреНрди рдЫрд╡рд┐ рдереЛрдбрд╝реА рдзреБрдВрдзрд▓реА рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред

рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореБрдЭреЗ рдПрдХ рдзреБрдВрдзрд▓реА рдЫрд╡рд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред
рдпрд╣рд╛рдБ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ: html2canvas рд╡реЗрдмрдкреЗрдЬ рдХрд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рдореБрдЭреЗ рд╕рд┐рд╕реНрдЯрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рд╡реЗрдмрдкреЗрдЬ "рд╕реНрдиреИрдкрд╢реЙрдЯ" рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг :
рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░: 816x422
рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░:1193x437
рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░: 1275x437
рдпрд╣рд╛рдВ рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рд╣реИ: 2000 x 1784 рдЖрдпрд╛рдо рдФрд░ рдКрдкрд░ред

рдХреНрдпрд╛ рдЫрд╡рд┐ рдХрд╛ рдпрд╣ рдЖрдпрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдмрд╣реБрдореВрд▓реНрдп рд╕реБрдЭрд╛рд╡ рджреЗрдВ рдФрд░ рдЕрдкрдиреЗ рдмрд╣реБрдореВрд▓реНрдп рд╕рдордп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕рдХреЗ рд▓рд┐рдП +1ред рдкреАрдбреАрдПрдл рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП html2canvas рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдзреБрдВрдзрд▓реА рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЙрд╕ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЗрд░реЗрдВрдЯ рдиреЛрдб рдкрд░ рд╕реАрдПрд╕рдПрд╕ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕реЗ "рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо: рд╕реНрдХреЗрд▓ (2, 2)"

@mudcube рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛

@brcontainer рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреНрдпрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИ ?? рдХреГрдкрдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдХрд┐ рдзреБрдВрдзрд▓реА рдЫрд╡рд┐ рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП, рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдПрдХ рдкреАрдбреАрдПрдл рдмрдирд╛рдирд╛ рд╣реИ

+1 рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди/рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рд╣реИ?

рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛?

рджреЛрд╕реНрддреЛрдВ, transform: scale(2, 2) рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@matiasinsaurralde рд╕реНрдХреНрд░реАрди рд╢реЙрдЯ рдмрдирд╛рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рд╕реАрдПрд╕рдПрд╕ рд╡рд░реНрдЧ .x2 рдЬрд┐рд╕рдореЗрдВ рдКрдкрд░ рд╕реЗ рддрддреНрд╡ рдореЗрдВ рд╕реАрдПрд╕рдПрд╕ рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реИ, рдлрд┐рд░ рдЙрд╕ рд╡рд░реНрдЧ рдХреЛ html2canvas рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╣рдЯрд╛ рджреЗрдВред рдЖрдкрдХреЛ рдбрдмрд▓-рд╕рд╛рдЗрдЬрд╝ рдПрд▓рд┐рдореЗрдВрдЯ рдФрд░ рдбрдмрд▓-рд╕рд╛рдЗрдЬрд╝ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рднреА рдорд┐рд▓реЗрдЧрд╛ред рдФрд░ рдпрд╣ рдирд┐рд░реНрдмрд╛рдз рд╣реИ рдЗрд╕рд▓рд┐рдП рдЖрдк рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред

image
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬрдм рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ @Ajaxy рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдореЗрд░реЗ рдХреЛрдб рдкрд░ рд╣реИ? рдкреГрд╖реНрда рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рд▓рдЧрд╛

рдкреИрдорд╛рдиреЗ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдВрдХрд▓реНрдк рдореЗрдВ рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рдХреАред рдЗрд╕реЗ рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдирд╛ рдерд╛ -
https://github.com/niklasvh/html2canvas/issues/379

рдХреЛрдИ рдХрд┐рд╕реНрдордд рджреЛрд╕реНрддреЛрдВ?

transform: scale(2, 2); dygraph.js рдХреЗ рд▓рд┐рдП рднреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ

@premerddyn , рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдореБрджреНрджреЗ рдореЗрдВ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рджреЗрдЦреЗрдВред
рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдЬрд╝рд╛рдлрд╝рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрдЧрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рддреЛ рдореИрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЬреЛрдбрд╝реВрдВрдЧрд╛

рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рдерд╛ рд╡рд╣ рджреЛ рдмрд╛рд░ рдЖрдХрд╛рд░ рдХрд╛ div рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рджреГрд╢реНрдпрддрд╛ рдкрддрди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛ рднреА рд╕рд╛рдордЧреНрд░реА рд╣реИ, рдореИрдВрдиреЗ рдЙрд╕ div рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓рд┐рдпрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЛрдИ рдЫрд╡рд┐ рд╕реНрдкрд╖реНрдЯрддрд╛ рд╣рд╛рдирд┐ рдирд╣реАрдВ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдХреЛрдб рдХреЛ рдЯреНрд╡реАрдХ рдХрд┐рдпрд╛ рд╣реИ рдХрд╛рдоред рдореБрдЭреЗ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ-рд╕реНрдЯреНрд░реЛрдХ рдФрд░ рдорд▓реНрдЯреАрд▓рд╛рдЗрди рдЯреЗрдХреНрд╕реНрдЯ-рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП 2 рдХрд╛рдореЛрдВ рд╕реЗ рд╕реНрдХреЗрд▓рд┐рдВрдЧ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдкрд╛рджрди рд╡рд┐рдВрдбреЛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди/рдЖрдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред рдпрджрд┐ рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ div рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдЪреМрдбрд╝рд╛ рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдХреБрдЫ рд╣рд┐рд╕реНрд╕рд╛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рддреЛ, рдХреНрдпрд╛ рд╕реНрдХреНрд░реАрди рд╕реЗ рдмрдбрд╝реЗ рдХреИрдирд╡рд╕ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ?

рдЖрд╣, рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ:

var h = $(element)[0].ownerDocument.defaultView.innerHeight;
    $(element)[0].ownerDocument.defaultView.innerHeight = $(element).height();
    html2canvas($(element)).then(function(canvas) {
        $(element)[0].ownerDocument.defaultView.innerHeight = h;
        //Do whatever you want with your canvas
    }

https://jsfiddle.net/enjoythedaycsk/9L966sdd/1/

рдореИрдВрдиреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓реА рдЪреАрдЬрд╝ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓реА ...

рдбрд╛рдЙрдирд▓реЛрдб pngx2 рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ..

рдХреНрдпрд╛ рдмреИрдХрдПрдВрдб рдкрд░ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреИрд╕реЗ рдЬрдм рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреИрдирд╡рд╛рд╕ рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рд╕реЗ рджреЛрдЧреБрдирд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рддрд╕реНрд╡реАрд░ рдЦреАрдВрдЪреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рдХреИрдирд╡рд╛рд╕ рдХреЛ рдирд┐рдпрдорд┐рдд рдЖрдХрд╛рд░ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ..

рдЬрд╝рд░реВрд░, рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рдереЗред рдореИрдВ рдЬрд┐рд╕ рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЙрд╕рдХрд╛ рдХреИрдирд╡рд╛рд╕ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реВрдВ
рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмрд╕
рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рд╕реАрдзреЗ рд╕реЗрдЯ рдХрд░реЗрдВред

рд╢рдирд┐рд╡рд╛рд░, рдордИ рен, реирежрезрем рдХреЛ, рдЖрдирдВрдж рджрд┐рди рдХреЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

https://jsfiddle.net/enjoythedaycsk/9L966sdd/1/

рдореИрдВрдиреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓реА рдЪреАрдЬрд╝ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдорд┐рд▓рд╛
рд╡рд╣...

рдбрд╛рдЙрдирд▓реЛрдб pngx2 рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ..

рдХреНрдпрд╛ рдмреИрдХрдПрдВрдб рдкрд░ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреИрд╕реЗ рдЬрдм рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХреИрдирд╡рд╛рд╕ рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рд╕реЗ рджреЛрдЧреБрдирд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рддрд╕реНрд╡реАрд░ рдЦреАрдВрдЪреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ
рдХреИрдирд╡рд╛рд╕ рдХреЛ рдирд┐рдпрдорд┐рдд рдЖрдХрд╛рд░ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ..

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/niklasvh/html2canvas/issues/241#issuecomment -217634634

рджреБрдирд┐рдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рд▓рдВрдмрд╛ рдЪрд▓ рд░рд╣рд╛ рдЪрд┐рддреНрд░рдг
ForeverScape.com http://www.foreverscape.com/ | @ рдлреЙрд░рдПрд╡рд░рд╕реНрдХреЗрдк
https://twitter.com/foreverscape | рдЧреАрдереВрдм рдкрд░
https://github.com/vance/foreverscapecore | рдЦрдмрд░ рдореЗрдВ
http://www.foreverscape.com/art/reviews/

@vance рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ jsfiddle рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

https://jsfiddle.net/enjoythedaycsk/9L966sdd/1/

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирдпрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдмрд╣реБрддреЛрдВ рдХреЗ рд▓рд┐рдП рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ :рдирд░реНрддрдХ:

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг div рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛ред transform:scale() рд╕рд╛рде рдХреБрдЫ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ div рдХреА рдЖрдВрддрд░рд┐рдХ рдКрдВрдЪрд╛рдИ _NOT_ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред рдпрд╣ w/h рдЧреБрдг рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд (рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ) рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЖрдк getBoundingClientRect() рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рджреЗрдЦреЗ рдЬрд╛рдиреЗ рдкрд░ рдЗрд╕рдХреА рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рдХреЗрд╡рд▓ _actually_ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред рд╕реНрдХреЗрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдХрдВрдЯреЗрдирд░ div рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

https://jsfiddle.net/jano9ao4/1/

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдХреЛрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ?уГ╛(┬┤я╜е )уГО"

рдореИрдВ рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдмрдбрд╝реЗ рддрддреНрд╡реЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдмрд╕ рдпрд╛рдж рд░рдЦреЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рд░реВрдкрд╛рдВрддрд░рд┐рдд рддрддреНрд╡ рд╕реЗ "рдмрдбрд╝реА" рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ (рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП), рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рд╕рдорд╛рди рдЖрдпрд╛рдо рд╣реИрдВред

рдореБрдЭреЗ рдПрдХ рдЖрдИрдлреНрд░реЗрдо рдореЗрдВ рдореЗрд░рд╛ рдХрд╛рдо рдХрд░рдирд╛ рдерд╛ рдФрд░ рдмреЗрд╕ 64 рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рднреЗрдЬрдирд╛ рдерд╛ ...

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ:

   //store the original size
    var h = $(element)[0].ownerDocument.defaultView.innerHeight;
    var w = $(element)[0].ownerDocument.defaultView.innerWidth;

   //set the document to the element's size
    $(element)[0].ownerDocument.defaultView.innerHeight = $(element).height();
    $(element)[0].ownerDocument.defaultView.innerWidth = $(element).width();

    html2canvas($(element)).then(function(canvas) {
        //restore the document size
        $(element)[0].ownerDocument.defaultView.innerHeight = h;
        $(element)[0].ownerDocument.defaultView.innerWidth = w;
        //Do whatever you want with your canvas
    }

рдореИрдВрдиреЗ html2canvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HTML рддрддреНрд╡ рд╕реЗ рдЙрдЪреНрдЪ-DPI рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рд╣реИред

  • рдпрджрд┐ рдКрдВрдЪрд╛рдИ рдпрд╛ рдЪреМрдбрд╝рд╛рдИ рд╕реАрдорд┐рдд рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╢рд░реАрд░ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪреМрдбрд╝рд╛рдИ рд╣реИ), рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдмрд╛рдзрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рд╕реНрд░реЛрдд рддрддреНрд╡ рд╡рд╛рдВрдЫрд┐рдд рдкреИрдорд╛рдиреЗ рддрдХ рдмрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
  • srcEl рдПрдХ рдореМрдЬреВрджрд╛ рддрддреНрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
  • destIMG рдПрдХ рдореМрдЬреВрджрд╛ (рдЦрд╛рд▓реА) рдЫрд╡рд┐ рддрддреНрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
  • dpi 96 . рдХрд╛ рдЧреБрдгрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
var makeHighResScreenshot = function(srcEl, destIMG, dpi) {
    var scaleFactor = Math.floor(dpi / 96);
    // Save original size of element
    var originalWidth = srcEl.offsetWidth;
    var originalHeight = srcEl.offsetHeight;
    // Save original document size
    var originalBodyWidth = document.body.offsetWidth;
    var originalBodyHeight = document.body.offsetHeight;

    // Add style: transform: scale() to srcEl
    srcEl.style.transform = "scale(" + scaleFactor + ", " + scaleFactor + ")";
    srcEl.style.transformOrigin = "left top";

    // create wrapper for srcEl to add hardcoded height/width
    var srcElWrapper = document.createElement('div');
    srcElWrapper.id = srcEl.id + '-wrapper';
    srcElWrapper.style.height = originalHeight*scaleFactor + 'px';
    srcElWrapper.style.width = originalWidth*scaleFactor + 'px';
    // insert wrapper before srcEl in the DOM tree
    srcEl.parentNode.insertBefore(srcElWrapper, srcEl);
    // move srcEl into wrapper
    srcElWrapper.appendChild(srcEl);

    // Temporarily remove height/width constraints as necessary
    document.body.style.width = originalBodyWidth*scaleFactor +"px";
    document.body.style.height = originalBodyHeight*scaleFactor +"px";

    window.scrollTo(0, 0); // html2canvas breaks when we're not at the top of the doc, see html2canvas#820
    html2canvas(srcElWrapper, {
        onrendered: function(canvas) {
            destIMG.src = canvas.toDataURL("image/png");
            srcElWrapper.style.display = "none";
            // Reset height/width constraints
            document.body.style.width = originalBodyWidth + "px";
            document.body.style.height = originalBodyHeight + "px";
        }
    });
};

рдЙрдкрдпреЛрдЧ:

var src = document.getElementById("screenshot-source");
var img = document.getElementById("screenshot-img");
makeHighResScreenshot(src, img, 192); // DPI of 192 is 4x resolution (2x normal DPI for both width and height)

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ window.onresize рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рднреА рдЯреВрдЯ рдЬрд╛рддреЗ рд╣реИрдВ? рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рд╕рдм рдПрдХ рдЖрдИрдлреНрд░реЗрдо рдХреЗ рдЕрдВрджрд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП parent.window.postMessage(data) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд▓рд┐рдП рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдРрдк рд╣реИ, рдФрд░ рдЖрдЧ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

@vance : рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЭреЗ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реИ - рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ HTML-to-PDF рд░реЗрдВрдбрд░рд░ рдореЗрдВ рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдЖрдкрдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рдпрд╣ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓реА рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдирд┐рдХрд╛рд▓рд╛, рдЬрд┐рд╕реЗ рд╢рд░реАрд░ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ html2canvas (#790, #820, #893, #922, рдЖрджрд┐) рдореЗрдВ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рд╕реНрд░реЛрдд рддрддреНрд╡ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рди рджреЗрдирд╛ рд╣реЛрдЧрд╛ред @MisterLamb рдХреЗ рд░реЗрдЯрд┐рдирд╛ рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред

function takeHighResScreenshot(srcEl, destIMG, scaleFactor) {
    // Save original size of element
    var originalWidth = srcEl.offsetWidth;
    var originalHeight = srcEl.offsetHeight;
    // Force px size (no %, EMs, etc)
    srcEl.style.width = originalWidth + "px";
    srcEl.style.height = originalHeight + "px";

    // Position the element at the top left of the document because of bugs in html2canvas. The bug exists when supplying a custom canvas, and offsets the rendering on the custom canvas based on the offset of the source element on the page; thus the source element MUST be at 0, 0.
    // See html2canvas issues #790, #820, #893, #922
    srcEl.style.position = "absolute";
    srcEl.style.top = "0";
    srcEl.style.left = "0";

    // Create scaled canvas
    var scaledCanvas = document.createElement("canvas");
    scaledCanvas.width = originalWidth * scaleFactor;
    scaledCanvas.height = originalHeight * scaleFactor;
    scaledCanvas.style.width = originalWidth + "px";
    scaledCanvas.style.height = originalHeight + "px";
    var scaledContext = scaledCanvas.getContext("2d");
    scaledContext.scale(scaleFactor, scaleFactor);

    html2canvas(srcEl, { canvas: scaledCanvas })
    .then(function(canvas) {
        destIMG.src = canvas.toDataURL("image/png");
        srcEl.style.display = "none";
    });
};

рдЙрдкрдпреЛрдЧ:

var src = document.getElementById("screenshot-src");
var img = document.getElementById("screenshot-img");
takeHighResScreenshot(src, img, 2); // This time we provide desired scale factor directly, no more messing with DPI

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрддреНрд╡ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдорд╛рд░реНрдЬрд┐рди рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдо рд╣реИрдХрдиреЗрд╕, рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП @ рдЬреЗрд╕рди-рдУ-рдореИрдЯрд┐рдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (0.5.0-рдЕрд▓реНрдлрд╛) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди 0.4.1 . рдирд╣реАрдВ

рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ 0.4.1 рдореЗрдВ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╣реЛрдЧрд╛ред

@airdrummingfool рдХреЗ рдлрд┐рдХреНрд╕ (рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рддреНрд╡рд░рд┐рдд рдиреЛрдЯ ...

рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рднреА "рд░рд┐рд╢реНрддреЗрджрд╛рд░" рддрддреНрд╡ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рддрддреНрд╡ рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕реНрдХреНрд░реАрди рдбрдВрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╡реЗ рдХрд┐рддрдиреА рджреВрд░ xtree рд╣реИрдВред рд╕реНрдХреНрд░реАрдирдбрдВрдк рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд┐рд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЬреЛ рддрддреНрд╡ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ 0,0 рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗ, рди рдХрд┐ рдЖрд╕рдкрд╛рд╕ рдХреЗ рдбреАрдЖрдИрд╡реАред

рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдХрдИ рдШрдВрдЯреЗ рд▓рдЧреЗ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдЙрдиреНрд╣реАрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рд╢реБрдн рджреЛрдкрд╣рд░ рдорд┐рддреНрд░реЛрдВ,
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ @airdrummingfool рд╕рдорд╛рдзрд╛рди рдХрд╛ jsfiddle рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд┐рд╕реНрдордд рдХреЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдореЗрд░реА рдмрд╣реБрдд рдорджрдж рдХрд░реЗрдЧрд╛ред

рдкреНрд░рджрд╛рди рдХреА рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧ! рдореИрдВ @airdrummingfool рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдХрд╖реНрдЯрдкреНрд░рдж рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдЬрд┐рд╕ рддрддреНрд╡ рд╕реЗ рдореИрдВ рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЙрд╕рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╣реИ рддрддреНрд╡ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╕рдордп, рдЖрдИрдПрдордЬреА рддрддреНрд╡ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ html2canvas рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ?

рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдореБрдЭреЗ рдмрдЪрд╛ рд░рд╣рд╛ рд╣реИ !! :рдбреА

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореБрдЭреЗ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЫрд╡рд┐ рдХрд╛ рдХреЗрд╡рд▓ рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рднреА рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдПрдХрджрдо рд╕рд╣реА рджрд┐рдЦрддрд╛ рд╣реИ xD

рдЫрд╡рд┐ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ !! useCORS рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛! рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдХреЗрд╡рд▓ рдЖрдзреА рдЫрд╡рд┐ рд╣реА рдорд┐рд▓ рд░рд╣реА рд╣реИред

рдорд╣рд╛рди! рдЖрдзреА рдЫрд╡рд┐ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдмрд╛рд╣рд░ рдкреНрд░рддрд┐рдкрд╛рджрди рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВрдиреЗ html2canvas рдореЗрдВ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди/рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреА рдХрд┐рдпрд╛ рд╣реИ, рдЖрдкрдХреЛ @airdrummingfool рд╕рдорд╛рдзрд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ

рдЬрдм рддрдХ рд╡реЗ html2canvas рдореЗрдВ рд╡рд┐рд▓рдп рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗ, рдЖрдк рдЙрди рджреЛрдиреЛрдВ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдмрдЧрдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдмрд┐рд▓реНрдб рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рд╣рд╛рдп @eKoopmansред рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╕рд┐рд░реНрдл рдКрдВрдЪрд╛рдИ рдХреЛ 2 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдХреЗ рдЦрджрд╛рди рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рд╕рдлреЗрдж рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рдЫрд╡рд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ ... рдЗрд╕рд▓рд┐рдП... рдореИрдВ рдЖрдкрдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред !

OM(F)G @eKoopmans .. рдЖрдкрдиреЗ

#1087 . рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╕рдорд╛рдкрди

@airdrummingfool ... рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдПрдХрджрдо рд╕рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЖрдк https://github.com/cburgmer/rasterizeHTML.js . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

html2canvas рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЖрдкрдХреЛ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

html2canvas(рддрддреНрд╡, {
рд╕реНрдХреЗрд▓: 2
});

рдПрдЪрдЯреАрдПрдордПрд▓ рдФрд░ рдЫрд╡рд┐ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдПрдХрд╛рдзрд┐рдХ рдкреГрд╖реНрда рдкреАрдбреАрдПрдл рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП, scale: 1 рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╛рдзрд╛рди рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдкреАрдбреАрдПрдл рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ рдмрдЪ рд╕рдХрддреА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдореИрдВрдиреЗ html2canvas . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ

рдбрд╛рдЙрдирд▓реЛрдб рдкреАрдбреАрдНрдлрд╝() {
рд╡рд░ рдбреЙрдХреНрдЯрд░ = рдирдпрд╛ рдЬреЗрдПрд╕рдкреАрдбреАрдПрдл ({
рдкреНрд░рд╛рд░реВрдк: "рдП 4"
});

html2canvas(document.getElementById("pdf-doc"), {
рд╕реНрдХреЗрд▓: "5"
}).рдлрд┐рд░ (рдХреИрдирд╡рд╛рд╕ => {
this.imgFile = рдХреИрдирд╡рд╛рд╕;
doc.addImage(this.imgFile, "JPEG", 5, 5, 200, 285);
doc.save ("рдлрд╝рд╛рдЗрд▓ рдирд╛рдо" + ".pdf");
});
}

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ABHIKSINGHH picture ABHIKSINGHH  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

koreanman picture koreanman  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tjchambers32 picture tjchambers32  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kunal886496 picture kunal886496  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tibewww picture tibewww  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ