Html2canvas: -рд╡реЗрдмрдХрд┐рдЯ-рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо: рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдордИ 2013  ┬╖  37рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: niklasvh/html2canvas

рдЯреНрд░рд╛рдВрд╕рдлрд╝рд░ рд╕реАрдПрд╕рдПрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

img class="imageobject" id="3" src="images/large/food.png" style="-webkit-transform: matrix(0.5, 0.42, -0.42, 0.5, 120, 52);"

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

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди рд░реЗрдВрдбрд░рдЗрдореЗрдЬ (рд╕реАрдЯреАрдПрдХреНрд╕, рдПрд▓рд┐рдореЗрдВрдЯ, рдЗрдореЗрдЬ, рдмрд╛рдЙрдВрдбреНрд╕, рдмреЙрд░реНрдбрд░реНрд╕, рдореИрдЯрдПрдХреНрд╕) {}
рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ "matx" рдкрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдЙрд╕ рдЫрд╡рд┐ рдХрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдорд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ "рд╕реАрдЯреАрдПрдХреНрд╕" рдХреЛ рдЕрд╕рд╛рдЗрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред

рдХреНрд░рд┐рдкреНрдпрд╛ рдореЗрд░рд┐ рд╕рд╣рд╛рдпрддрд╛ рдХрд░реЗред

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

@liteelips рдореБрдЭреЗ рднреА, рдореБрдЭреЗ рдЯреЗрдХреНрд╕реНрдЯ рд░реЛрдЯреЗрд╢рди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :(

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

рд░реВрдкрд╛рдВрддрд░рдг рдЕрднреА рддрдХ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред

114 #184 #209

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ - рд╕реБрдВрджрд░ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА (рдкреАрдПрдирдЬреА рдФрд░ рдЬреЗрдкреАрдЬреА рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рдореВрд▓ рддрд░реНрдХ: рдШреБрдорд╛рдП рдЧрдП рдЪрд┐рддреНрд░ рдвреВрдВрдвреЗрдВ, рдЙрдирдХрд╛ рд╕реНрдерд╛рди рдмрджрд▓реЗрдВ рдФрд░ PHP рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдЪрд░рдг 1 : jQuery рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ CSS рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

(function ($) {
    $.fn.rotationDegrees = function () {
         var matrix = this.css("-webkit-transform") ||
    this.css("-moz-transform")    ||
    this.css("-ms-transform")     ||
    this.css("-o-transform")      ||
    this.css("transform");
    if(typeof matrix === 'string' && matrix !== 'none') {
        var values = matrix.split('(')[1].split(')')[0].split(',');
        var a = values[0];
        var b = values[1];
        var angle = Math.round(Math.atan2(b, a) * (180/Math.PI));
    } else { var angle = 0; }
    return angle < 0 ? angle+360 : angle;
   };
}(jQuery));

рдЪрд░рдг 2: рдШреБрдорд╛рдП рдЧрдП рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЛ PHP URL рд╕реЗ рдмрджрд▓реЗрдВ (рдЗрд╕реЗ html2canvas рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ)ред

$("img").each(function(){
    rot = $(this).rotationDegrees();
    if (rot != 0)
        $(this).attr("src", "/rotateimg.php?rotate=" + rot + "&loc=" + $(this).attr("src"));
});

рдЪрд░рдг 3: рд░реЛрдЯреЗрдЯрд┐рдордЧ.php рдмрдирд╛рдПрдВ рдЬреЛ рд░реЛрдЯреЗрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ

<?php
$loc = $_GET['loc'];
$rot = -$_GET['rotate'];
$path = "/web/images/path"; // $_SERVER['DOCUMENT_ROOT'] ?
$source = NULL;

if (substr($loc, -3) == "png")
    $source = imagecreatefrompng($path . $loc);
else if (substr($loc, -3) == "jpg") {
    $source = imagecreatefromjpeg($path . $loc);
}

imagealphablending($source, false);
imagesavealpha($source, true);

$img = imagerotate($source, $rot, imageColorAllocateAlpha($source, 0, 0, 0, 127));
imagealphablending($img, false);
imagesavealpha($img, true);

imagepng($img);

?>

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ред =)

рдореИрдВрдиреЗ 90, 180 рдпрд╛ 270 рдбрд┐рдЧреНрд░реА рдШреБрдорд╛рдП рдЧрдП рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИред https://github.com/mjaggard/html2canvas/tree/simple-rotation

рдЧреИрд░-рдЫрд╡рд┐ рд░реЛрдЯреЗрд╢рди рдЖрдо рддреМрд░ рдкрд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рди рд╣реА рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдХреБрдЫ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдШреВрд░реНрдгрди html2canvas рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ)ред

рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдирд╛ред рдпрд╣рд╛рдВ рдЫрд╡рд┐рдпреЛрдВ/рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд░реЛрдЯреЗрд╢рди рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИред рд╣рдореЗрдВ "рдбрд┐рдЧреНрд░реА" рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -webkit-transform рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕рд╛рдорд╛рди рдирд╣реАрдВ рд╣реИред

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

рдЕрднрд┐рд╡рд╛рджрди,

рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рдкрд╛рда рд╣реИ рдЬреЛ рдареАрдХ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдкрд╛рддреНрд░ рд╕рднреА рдПрдХ рд╕рд╛рде рддрдВрдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдЗрд╕ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдореБрдЭреЗ рдШреБрдорд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ :(

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

@niklasvh : рдХреНрдпрд╛ рдЖрдк рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рджрд╛рди рджреВрдВрдЧрд╛ ред

рдирдорд╕реНрддреЗ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрдкрдХрд░рдг рдХреЛ рдпрд╛рдж рдХрд░рддреА рд╣реИ, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛?

@mjaggard - рдХреНрдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЖрдкрдХреА рдЫрд╡рд┐ рд░реЛрдЯреЗрд╢рди рдХреЛрдб рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛ рд╣реИ?
рдореИрдВрдиреЗ рдЖрдкрдХрд╛ рдХреЛрдб рджреЗрдЦрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж!

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

рдХреНрдпрд╛ рдЖрдк рдЬрд▓реНрдж рд╣реА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?
рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ !!

рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж !

рдирдорд╕реНрддреЗ,
рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд░реЛрдЯреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА (рд╡реЗрдмрдХрд┐рдЯ-рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо) рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдгред
рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдХрд┐рд╕реА рднреА div рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

.RT{-ms-transform: рдШреБрдорд╛рдПрдБ(7deg); /* рдЖрдИрдИ 9 _/
-рд╡реЗрдмрдХрд┐рдЯ-рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо: рд░реЛрдЯреЗрдЯ (7 рдбрд┐рдЧреНрд░реА); /_ рдХреНрд░реЛрдо, рд╕рдлрд╛рд░реА, рдУрдкреЗрд░рд╛ */
рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо: рд░реЛрдЯреЗрдЯ (7 рдбрд┐рдЧреНрд░реА);}

рдмреБрдз, 7 рдЬрдирд╡рд░реА, 2015 рдореЗрдВ 7:02 рдмрдЬреЗ рдкрд░, dscarteland [email protected]
рд▓рд┐рдЦрд╛ рдерд╛:

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

рдХреНрдпрд╛ рдЖрдк рдЬрд▓реНрдж рд╣реА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?
рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ !!

рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж !

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -69021663
.

@liteelips рдореБрдЭреЗ рднреА, рдореБрдЭреЗ рдЯреЗрдХреНрд╕реНрдЯ рд░реЛрдЯреЗрд╢рди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :(

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдШреБрдорд╛рдП рдЧрдП divs рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рддрд╛ рд╣реИ?

+1

рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рд░реЛрдЯреЗрд╢рди рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХреЛрдбред рдлрд╝рд╛рдЗрд▓ рдЕрдЯреИрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА. [email protected] рдлрд╝рд╛рдЗрд▓ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдореЗрд▓ рдХрд░реЗрдВ

рдХрдорд╛рд▓ рд╣реИ рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдпрд╛ JS Fiddle рдбрд╛рд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ?

рдирдорд╕реНрддреЗ ,
рдорд╣рд╛рди !! рдХреНрдпрд╛ рдореБрдЭреЗ рдлрд╝рд╛рдЗрд▓ рдХреГрдкрдпрд╛ рд░реЛрдЯреЗрд╢рди рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдореЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ?
рдЕрдм рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдордВрдЧрд▓рд╡рд╛рд░, реиреп рд╕рд┐рддрдВрдмрд░, реирежрезрел рдЕрдкрд░рд╛рд╣реНрди рей:рейреи рдмрдЬреЗ, рдЕрд░рд┐рдВрджрдо рдореЛрдЬреБрдорджрд╛рд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рд░реЛрдЯреЗрд╢рди рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХреЛрдбред рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдлрд╝рд╛рдЗрд▓ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВред рдлрд╛рдЗрд▓ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдореЗрд▓ рдХрд░реЗрдВ рдпрд╛ рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рдЬрд╛рдПрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -144011634
.

_рдЕрдорд░ рд╕рд┐рдВрд╣_
_PHP/MySQL рдбреЗрд╡рд▓рдкрд░_
_рдлреЗрд╕рдмреБрдХ
https://www.facebook.com/pages/Codework/741342762609839 // рд▓рд┐рдВрдХреНрдбрдЗрди
https://www.linkedin.com/company/kodework_

_рдИрдореЗрд▓:_ рдЕрдорд░ред [email protected] [email protected]
_рдореЛрдмрд╛рдЗрд▓: *+91 7040980700
*рд╡рд┐рднрд╛рдЧ: *рд╡рд┐рдХрд╛рд╕
*рд╕рдорд░реНрдерди:_ [email protected]
_рдкрддрд╛:_ рдИ-4 рд╡рд┐рд╕реЗрдВрдЯ рдЧреНрд░реАрдиреНрд╕, рд╕реЛрдХреЛрд░реЛ,
рдкреЛрд░рд╡реЛрд░рд┐рдо, рдЧреЛрд╡рд╛ 403521ред
_рд╡реЗрдмрд╕рд╛рдЗрдЯ:_ www.kodework.com

рдирдорд╕реНрддреЗ, рдореИрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо (рдШреБрдорд╛рдиреЗ) рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЦрд╛рд╕рдХрд░ рдЖрдИрдИ рдореЗрдВред рддреИрдпрд╛рд░ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдШреБрдорд╛рдпрд╛ рд╣реБрдЖ рддрддреНрд╡ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдЖрдзрд╛ рддрддреНрд╡ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рд╣реИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реИрд▓реА:

$('#<id of element>').htmlToCanvas({
        width: 1000, // dimension of your html page
        height: 600, // dimension of your html page
        complete: function(){
      var image = this.htmlToCanvas.toBinrary(); // will return base64 image data
      $('<img emelent>').attr("src",image); // use this as a src of any img element
   }
  });

// рдХреИрдирд╡рд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдЪрдЯреАрдПрдордПрд▓ рдФрд░ рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдХреЛ рд╕рд╣реЗрдЬрдирд╛

htmlToCanvas.js рдлрд╝рд╛рдЗрд▓

(рдлрд╝рдВрдХреНрд╢рди ($) {

var canvasCounter = 0;
var canvas, cnvs, ctx, elementArr, callback, _this;

$.fn.htmlToCanvas = function(options){

    var defaults    = {width: 1000, height: 600, complete: null};
    callback        = $.extend(defaults, options);
    _this           = this;

    return this.each(function(){

        createImage('#'+$(this)[0].id);
    });
}

$.fn.htmlToCanvas.toBinrary = function() {
    return cnvs.toDataURL("image/jpeg",1);
// return   cnvs.toDataURL({
//      format: 'png',
//      left: 0,
//      top: 0,
//      width: 200,
//      height: 150
//  })
}

$.fn.htmlToCanvas.removeCanvas = function() {
    canvas.remove();
}

function createImage(divobj)
{
    ////console.log(divobj);

    if(canvas) canvas.remove();
    canvas = $('<canvas id="canvas" width="' + callback.width + '" height="'+ callback.height +'" style="display: block;"></canvas>');
    $('body').append(canvas);
    cnvs    = document.getElementById('canvas')
    ctx     = cnvs.getContext("2d");

    ctx.fillStyle = $(divobj).css('background-color');
    ctx.fillRect(0,0,callback.width, callback.height);
    canvasCounter = 0;
    elementArr      = [];

    $(divobj + " img").each(function(index){
        elementArr.push({type: 'img', zindex: $(this).css('z-index'), imgobj: $(this)});
        console.log($(this));
    });

    $(divobj + " div").each(function(index){
        elementArr.push({type: 'txt', zindex: $(this).css('z-index'), imgobj: $(this)});
    });

    elementArr.sort(function (a, b) {
         //var a_zindex = a && a.zindex || "",
            //b_zindex = b && b.zindex || "";
        //return a_zindex.localeCompare(b_zindex);
        var dif = Number(a.zindex - b.zindex);
        //alert('cal '+dif);
        return (dif);
    });

    //--------- background images ----------

    if($(divobj).css('background-image') != 'none'){

        var background = new Image();
        var back_source = $(divobj).css('background-image');
        back_source = back_source.substring(4, back_source.length-1);
        back_source = back_source.replace('"', '');
        back_source = back_source.replace('"', '');
        //background.src = back_source;

        $.ajax({
            type: 'POST',
            url: 'data/imagedata.php',
            data: {'imgurl': back_source},
            success: function(_data){
                //console.log(_data);
                var imagedata = 'data:image/jpeg;base64,' + _data;
                background.src = imagedata;
                background.onload = function(){
                    for (var w = 0; w < canvas.attr('width'); w += background.width) {
                        for (var h = 0; h < canvas.attr('height'); h  += background.height){
                            ctx.drawImage(background, w, h);
                        }
                    }

                    if(elementArr.length > 0){
                        htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
                    } else {
                        postCanvas();
                    }
                }
            },
            error: function(xhr, textstatus){
                ////console.log(textstatus);
            }
        });

    } else {
        if(elementArr.length > 0){
            htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
        } else {
            postCanvas();
        }
    }
}

function htmlToCanvas(type, obj){

    if(type == 'img'){
        var canvas_img = new Image();
        canvas_img.crossOrigin = "*";  // This enables CORS
        canvas_img.src = obj.attr('src');
        //console.log(canvas_img.src);
        var matrix = getObjMatrix(obj);
        matrix = matrix.substring(7,matrix.length-1).split(', ');

            canvas_img.onload = function(){
                //console.log('onload');
                ctx.save();
                ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
                ctx.drawImage(canvas_img, 0, 0);
                ctx.restore();
                putAnotherElementToCanvas();
        }

    /*  $.ajax({
            type: 'POST',
            url: 'data/imagedata.php',
            data: {'imgurl': obj.attr('src')},
            success: function(_data){

                var imagedata = 'data:image/png;base64,' + _data;
                canvas_img.src = imagedata;

                canvas_img.onload = function(){
                    ctx.save();
                    ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
                    ctx.drawImage(canvas_img, 0, 0);
                    ctx.restore();
                    putAnotherElementToCanvas();
                }
            },
            error: function(xhr, textstatus){
                ////console.log(textstatus);
            }
        });*/

    } else if(type == 'txt'){

        ctx.save();

        var matrix = getObjMatrix(obj);
        matrix = matrix.substring(7,matrix.length-1).split(', ');

        ctx.setTransform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
        ctx.fillStyle = obj.css('background-color');
        ctx.fillRect(0, -7, obj.width(), obj.height());

        ctx.fillStyle = obj.css('color');
        ctx.font = (obj.css('font-size') + ' '  + obj.css('font-family')).toString();
        ctx.textAlign = obj.css('text-align');

        var xpos;
        if(obj.css('text-align') == 'left'){
            xpos = matrix[4];
        } else if(obj.css('text-align') == 'center'){
            xpos = Number(matrix[4]) + (obj.width()*matrix[0])/2;

        } else if(obj.css('text-align') == 'right'){
            xpos = Number(matrix[4]) + (obj.width()*matrix[0]);
        }

        ctx.setTransform(matrix[0], matrix[1], matrix[2], matrix[3], xpos, matrix[5]);
        var lh = obj.css('font-size').replace('px', '')*1.2;

        wrapText(ctx, obj.text(), 0, lh/2, obj.width()+25, lh);

        ctx.restore();
        putAnotherElementToCanvas();
    }
}

function putAnotherElementToCanvas(){

    canvasCounter++;
    console.log(canvasCounter+ ' - ' +elementArr.length)
    if(canvasCounter < elementArr.length){
        htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
    } else {
        postCanvas();
    }
}

function postCanvas()
{
    var tempCanvas      = document.createElement('canvas');
    tempCanvas.width    = cnvs.width;
    tempCanvas.height = cnvs.height;
    tempCanvas.getContext('2d').drawImage(cnvs, 0, 0);
//  cnvs.width              = 170;
//  cnvs.height             = 102;
    cnvs.getContext('2d').drawImage(tempCanvas, 0, 0, tempCanvas.width, tempCanvas.height, 0, 0, cnvs.width, cnvs.height);
    $.isFunction(callback.complete) && callback.complete.call(_this);
    canvas.remove();
}

function wrapText(context, text, x, y, maxWidth, lineHeight) {
    var words = text.split(' ');
    var line = '';

    for(var n = 0; n < words.length; n++) {
      var testLine = line + words[n] + ' ';
      var metrics = context.measureText(testLine);
      var testWidth = metrics.width;
      if(testWidth > maxWidth) {
        context.fillText(line, x, y);
        line = words[n] + ' ';
        y += lineHeight;
      }
      else {
        line = testLine;
      }
    }
    context.fillText(line, x, y);
}

function getObjMatrix(obj) {
    var matrix = obj.css("-webkit-transform") ||
    obj.css("-moz-transform") ||
    obj.css("-ms-transform") ||
    obj.css("-o-transform") ||
    obj.css("transform");
    return matrix;
}

})(jQuery);
рдП

рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЗрдореЗрдЬ рдФрд░ рдПрд╕рд╡реАрдЬреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

// рдХреИрдирд╡рд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдЪрдЯреАрдПрдордПрд▓ рдФрд░ рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдХреЛ рд╕рд╣реЗрдЬрдирд╛
(рдлрд╝рдВрдХреНрд╢рди ($) {

var canvasCounter = 0;
var canvas, cnvs, ctx, elementArr, callback, _this;

$.fn.htmlToCanvas = function(options) {

    var defaults = {
        width: 1000,
        height: 600,
        complete: null
    };
    callback = $.extend(defaults, options);
    _this = this;

    return this.each(function() {

        createImage('#' + $(this)[0].id);
    });
}

$.fn.htmlToCanvas.toBinrary = function() {
    return cnvs.toDataURL("image/jpeg", 1);
}

$.fn.htmlToCanvas.removeCanvas = function() {
    canvas.remove();
}

function createImage(divobj) {
    if (canvas) canvas.remove();
    canvas = $('<canvas id="canvas" width="' + callback.width + '" height="' + callback.height + '" style="display: block;"></canvas>');
    $('body').append(canvas);
    cnvs = document.getElementById('canvas')
    ctx = cnvs.getContext("2d");

    ctx.fillStyle = $(divobj).css('background-color');
    ctx.fillRect(0, 0, callback.width, callback.height);
    canvasCounter = 0;
    elementArr = [];

    $(divobj + " img").each(function(index) {
        elementArr.push({
            type: 'img',
            zindex: $(this).css('z-index'),
            imgobj: $(this)
        });
    });

    $(divobj + " div.text-field").each(function(index) {
        elementArr.push({
            type: 'txt',
            zindex: $(this).css('z-index'),
            imgobj: $(this)
        });
    });
    /*======================== for svg rendar pm7014.10.15 ========================*/
    $(divobj + " div.hotsPot svg").each(function(index) {
        elementArr.push({
            type: 'svg',
            zindex: $(this).parent().css('z-index'),
            imgobj: $(this)
        });
    });
    /*======================== for svg rendar End pm7014.10.15 ========================*/
    elementArr.sort(function(a, b) {
        var dif = Number(a.zindex - b.zindex);
        return (dif);
    });

    //--------- background images ----------

    if ($(divobj).css('background-image') != 'none') {

        var background = new Image();
        var back_source = $(divobj).css('background-image');
        back_source = back_source.substring(4, back_source.length - 1);
        back_source = back_source.replace('"', '');
        back_source = back_source.replace('"', '');

        background.crossOrigin = "*"; // This enables CORS
        background.src = back_source;

        background.onload = function() {
            for (var w = 0; w < canvas.attr('width'); w += background.width) {
                for (var h = 0; h < canvas.attr('height'); h += background.height) {
                    ctx.drawImage(background, w, h);
                }
            }

            if (elementArr.length > 0) {
                htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
            } else {
                postCanvas();
            }
        }

    } else {
        if (elementArr.length > 0) {
            htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
        } else {
            postCanvas();
        }
    }
}

function htmlToCanvas(type, obj) {

    if (type == 'img') {
        var canvas_img = new Image();
        canvas_img.crossOrigin = "*"; // This enables CORS
        canvas_img.src = obj.attr('src');
        var matrix = getObjMatrix(obj);
        matrix = matrix.substring(7, matrix.length - 1).split(', ');

        canvas_img.onload = function() {
            ctx.save();
            ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
            ctx.drawImage(canvas_img, 0, 0);
            ctx.restore();
            putAnotherElementToCanvas();
        }

    } else if (type == 'txt') {

        ctx.save();

        var matrix = getObjMatrix(obj);
        matrix = matrix.substring(7, matrix.length - 1).split(', ');

        ctx.setTransform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
        ctx.fillStyle = obj.css('background-color');
        ctx.fillRect(0, -7, obj.width(), obj.height());

        ctx.fillStyle = obj.css('color');
        ctx.font = (obj.css('font-size') + ' ' + obj.css('font-family')).toString();
        ctx.textAlign = obj.css('text-align');

        var xpos;
        if (obj.css('text-align') == 'left') {
            xpos = matrix[4];
        } else if (obj.css('text-align') == 'center') {
            xpos = Number(matrix[4]) + (obj.width() * matrix[0]) / 2;

        } else if (obj.css('text-align') == 'right') {
            xpos = Number(matrix[4]) + (obj.width() * matrix[0]);
        }

        ctx.setTransform(matrix[0], matrix[1], matrix[2], matrix[3], xpos, matrix[5]);
        var lh = obj.css('font-size').replace('px', '') * 1.2;

        wrapText(ctx, obj.text(), 0, lh / 2, obj.width() + 25, lh);

        ctx.restore();
        putAnotherElementToCanvas();
        /*======================== for svg rendar pm7014.10.15 ========================*/
    } else if (type == 'svg') {
        svgObj = setAttributes(obj);
        var data = "data:image/svg+xml;base64," + window.btoa($(obj).parent().html());
        var svg_img = new Image();
        svg_img.src = data;
        var svgMatrix = getObjMatrix(obj.parent());
        svgMatrix = svgMatrix.substring(7, svgMatrix.length - 1).split(', ');
        svg_img.onload = function() {
            ctx.save();
            ctx.transform(svgMatrix[0], svgMatrix[1], svgMatrix[2], svgMatrix[3], svgMatrix[4], svgMatrix[5]);
            ctx.drawImage(svg_img, 0, 0);
            ctx.restore();
            putAnotherElementToCanvas();
        };
    }
    /* ======================== for svg rendar pm7014.10.15 ======================== */

}

function setAttributes(el) {
    el.attr("version", "1.1");
    el.attr("xmlns", "http://www.w3.org/2000/svg");
    el.attr("xmlns:xlink", "http://www.w3.org/1999/xlink");
    return el;
}



function putAnotherElementToCanvas() {

    canvasCounter++;
    //console.log(canvasCounter+ ' - ' +elementArr.length)
    if (canvasCounter < elementArr.length) {
        htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
    } else {
        postCanvas();
    }
}

function postCanvas() {
    var tempCanvas = document.createElement('canvas');
    tempCanvas.width = cnvs.width;
    tempCanvas.height = cnvs.height;
    tempCanvas.getContext('2d').drawImage(cnvs, 0, 0);
    //  cnvs.width              = 170;
    //  cnvs.height             = 102;
    cnvs.getContext('2d').drawImage(tempCanvas, 0, 0, tempCanvas.width, tempCanvas.height, 0, 0, cnvs.width, cnvs.height);
    $.isFunction(callback.complete) && callback.complete.call(_this);
    canvas.remove();
}

function wrapText(context, text, x, y, maxWidth, lineHeight) {
    var words = text.split(' ');
    var line = '';

    for (var n = 0; n < words.length; n++) {
        var testLine = line + words[n] + ' ';
        var metrics = context.measureText(testLine);
        var testWidth = metrics.width;
        if (testWidth > maxWidth) {
            context.fillText(line, x, y);
            line = words[n] + ' ';
            y += lineHeight;
        } else {
            line = testLine;
        }
    }
    context.fillText(line, x, y);
}

function getObjMatrix(obj) {
    var matrix = obj.css("-webkit-transform") ||
        obj.css("-moz-transform") ||
        obj.css("-ms-transform") ||
        obj.css("-o-transform") ||
        obj.css("transform");
    return matrix;
}

})(jQuery);

рд╕реАрдПрд╕рдПрд╕ рд░реЛрдЯреЗрд╢рди рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ... рдореЗрд░реЗ рдкрд╛рд╕ рдпреЗ рд╕рд╛рдорд╛рди рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рд╣реИрдВ
рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо: рд░реЛрдЯреЗрдЯ (-13deg);
рдЬреЗрдб-рдЗрдВрдбреЗрдХреНрд╕: 40;
. рдХреГрдкрдпрд╛ рдХреЛрдИ рдЕрдкрдбреЗрдЯред

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЛ рдЖрдЬрдорд╛рдУред

рдЧреБрд░реБ, 15 рдЕрдХреНрдЯреВрдмрд░, 2015 рджреЛрдкрд╣рд░ 1:57 рдмрдЬреЗ, рдпреЛ рдпреЛ рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рд╕реАрдПрд╕рдПрд╕ рд░реЛрдЯреЗрд╢рди рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ... рдореЗрд░реЗ рдкрд╛рд╕ рдпреЗ рд╕рд╛рдорд╛рди рд╣реИрдВ
рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ
рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо: рд░реЛрдЯреЗрдЯ (-13deg);
рдЬреЗрдб-рдЗрдВрдбреЗрдХреНрд╕: 40;
. рдХреГрдкрдпрд╛ рдХреЛрдИ рдЕрдкрдбреЗрдЯред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -148316296
.

_рдиреЛрдЯ: рд╣рдо рджреБрд░реНрдЧрд╛ рдкреВрдЬрд╛ рдХреЗ рд▓рд┐рдП рд░рд╡рд╛рдирд╛ рд╣реЛрдВрдЧреЗ
https://en.wikipedia.org/wiki/Durga_Puja рдХреА рдЫреБрдЯреНрдЯреА 20 рд╕реЗ 23 рддрд╛рд░реАрдЦ рддрдХ
рдЕрдХреНрдЯреВрдмрд░ред_

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ
_рдЕрд░рд┐рдВрджрдо рдореЛрдЬреБрдорджрд╛рд░_
рдореИрдВ
HTML5 рдФрд░ jQuery рдЯреАрдо рд▓реАрдб

_рдЗрдВрдбрд╕ рдиреЗрдЯ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ_ http://www.indusnet.co.in
рдПрдХ рдЖрдИрдПрд╕рдУ 9001:2008 рдФрд░ рдЖрдИрдПрд╕рдУ 27001:2005 рдкреНрд░рдорд╛рдгрд┐рдд рдХрдВрдкрдиреА

рдбрди рдПрдВрдб рдмреНрд░реИрдбрд╕реНрдЯреНрд░реАрдЯ рджреНрд╡рд╛рд░рд╛ 2008 рдореЗрдВ рднрд╛рд░рдд рдореЗрдВ # 1 рдЖрдИрдЯреА рдПрд╕рдПрдордИ рдХрд╛ рджрд░реНрдЬрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛

Gtalk : [email protected]

рд╕реНрдХрд╛рдЗрдк: рдЕрд░рд┐рдВрджрдо_рдореЛрдЬреБрдорджрд╛рд░

рднреАрдбрд╝:+919830307843,+918420200614
рдлреЛрди: +91-33-32902857/23576070
рдЯреЛрд▓-рдлреНрд░реА (рдЕрдореЗрд░рд┐рдХрд╛ рдФрд░ рдХрдирд╛рдбрд╛): +1-888-652-2121
рдпреВрдХреЗ : +44-020-81444070

рдлреИрдХреНрд╕: +1-760-284-6062

рдЗрд╕ рд╕рдВрджреЗрд╢ рдореЗрдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдпрд╛ рдЧреЛрдкрдиреАрдп рд╣реЛ рд╕рдХрддреА рд╣реИ
рдФрд░ рдЗрдВрдбрд╕ рдиреЗрдЯ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ
http://www.indusnet.co.in/ред рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣
рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрджрд┐ рдЖрдк рдЗрдЪреНрдЫрд┐рдд рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдзрд┐рдХреГрдд рдирд╣реАрдВ рд╣реИрдВ
рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдкрдврд╝рдиреЗ, рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдП рд░рдЦрдиреЗ, рдкреНрд░рд╕рд╛рд░ рдХрд░рдиреЗ, рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдпрд╛ рдЙрд╕рдХрд╛ рдХреЛрдИ рднрд╛рдЧред рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рдЧрд▓рддреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
рдкреНрд░реЗрд╖рдХ рдХреЛ рддреБрд░рдВрдд рдФрд░ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреА рд╕рднреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рд╕рд┐рдВрдзреБ рдЬрд╛рд▓
рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА http://www.indusnet.co.in/ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рджрд╛рдпрд┐рддреНрд╡ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рд╡рд╛рдпрд░рд╕ рд╕рдВрдХреНрд░рдорд┐рдд рдореЗрд▓ред

@arindamm рдХреМрди рд╕рд╛? рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рдлрд╛рдЗрд▓ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

@arindamm : рдпрджрд┐ рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╣рд╛рдВ рдЬреЛрдбрд╝рдирд╛ рд╣реИред

рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рдореЗрд▓ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

рдЧреБрд░реБ, 15 рдЕрдХреНрдЯреВрдмрд░, 2015 рдХреЛ рдЕрдкрд░рд╛рд╣реНрди 3:52 рдмрдЬреЗ, рдпреЛ рдпреЛ рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@arindamm https://github.com/arindamm : рдЕрдЧрд░ рдЖрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдХреЛрдб рд╕реЗ рдКрдкрд░ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдЬреЛрдбрд╝рдирд╛ рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -148344194
.

_рдиреЛрдЯ: рд╣рдо рджреБрд░реНрдЧрд╛ рдкреВрдЬрд╛ рдХреЗ рд▓рд┐рдП рд░рд╡рд╛рдирд╛ рд╣реЛрдВрдЧреЗ
https://en.wikipedia.org/wiki/Durga_Puja рдХреА рдЫреБрдЯреНрдЯреА 20 рд╕реЗ 23 рддрд╛рд░реАрдЦ рддрдХ
рдЕрдХреНрдЯреВрдмрд░ред_

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ
_рдЕрд░рд┐рдВрджрдо рдореЛрдЬреБрдорджрд╛рд░_
рдореИрдВ
HTML5 рдФрд░ jQuery рдЯреАрдо рд▓реАрдб

_рдЗрдВрдбрд╕ рдиреЗрдЯ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ_ http://www.indusnet.co.in
рдПрдХ рдЖрдИрдПрд╕рдУ 9001:2008 рдФрд░ рдЖрдИрдПрд╕рдУ 27001:2005 рдкреНрд░рдорд╛рдгрд┐рдд рдХрдВрдкрдиреА

рдбрди рдПрдВрдб рдмреНрд░реИрдбрд╕реНрдЯреНрд░реАрдЯ рджреНрд╡рд╛рд░рд╛ 2008 рдореЗрдВ рднрд╛рд░рдд рдореЗрдВ # 1 рдЖрдИрдЯреА рдПрд╕рдПрдордИ рдХрд╛ рджрд░реНрдЬрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛

Gtalk : [email protected]

рд╕реНрдХрд╛рдЗрдк: рдЕрд░рд┐рдВрджрдо_рдореЛрдЬреБрдорджрд╛рд░

рднреАрдбрд╝:+919830307843,+918420200614
рдлреЛрди: +91-33-32902857/23576070
рдЯреЛрд▓-рдлреНрд░реА (рдЕрдореЗрд░рд┐рдХрд╛ рдФрд░ рдХрдирд╛рдбрд╛): +1-888-652-2121
рдпреВрдХреЗ : +44-020-81444070

рдлреИрдХреНрд╕: +1-760-284-6062

рдЗрд╕ рд╕рдВрджреЗрд╢ рдореЗрдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдпрд╛ рдЧреЛрдкрдиреАрдп рд╣реЛ рд╕рдХрддреА рд╣реИ
рдФрд░ рдЗрдВрдбрд╕ рдиреЗрдЯ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ
http://www.indusnet.co.in/ред рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣
рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрджрд┐ рдЖрдк рдЗрдЪреНрдЫрд┐рдд рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдзрд┐рдХреГрдд рдирд╣реАрдВ рд╣реИрдВ
рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдкрдврд╝рдиреЗ, рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдП рд░рдЦрдиреЗ, рдкреНрд░рд╕рд╛рд░ рдХрд░рдиреЗ, рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдпрд╛ рдЙрд╕рдХрд╛ рдХреЛрдИ рднрд╛рдЧред рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рдЧрд▓рддреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
рдкреНрд░реЗрд╖рдХ рдХреЛ рддреБрд░рдВрдд рдФрд░ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреА рд╕рднреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рд╕рд┐рдВрдзреБ рдЬрд╛рд▓
рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА http://www.indusnet.co.in/ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рджрд╛рдпрд┐рддреНрд╡ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рд╡рд╛рдпрд░рд╕ рд╕рдВрдХреНрд░рдорд┐рдд рдореЗрд▓ред

@arindamm @niklasvh рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ? рдореИрдВ рдХреБрдЫ рдкрд╛рда рдХреЛ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ рд╣реИред рдЖрдИрдИ 11 рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдИрдИ 9 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреНрд╖рдорд╛ рдорд╛рдВрдЧрдирд╛ред

рд╕реЛрдо, 19 рдЕрдХреНрдЯреВрдмрд░, 2015 рдХреЛ рдЕрдкрд░рд╛рд╣реНрди 3:45 рдмрдЬреЗ, рд░рдВрдЧрд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@arindamm https://github.com/arindamm @niklasvh
https://github.com/niklasvh рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?
рдореИрдВ рдХреБрдЫ рдкрд╛рда рдХреЛ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ рд╣реИред
рдЖрдИрдИ 11 рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдИрдИ 9 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -149174708
.

_рдиреЛрдЯ: рд╣рдо рджреБрд░реНрдЧрд╛ рдкреВрдЬрд╛ рдХреЗ рд▓рд┐рдП рд░рд╡рд╛рдирд╛ рд╣реЛрдВрдЧреЗ
https://en.wikipedia.org/wiki/Durga_Puja рдХреА рдЫреБрдЯреНрдЯреА 20 рд╕реЗ 23 рддрд╛рд░реАрдЦ рддрдХ
рдЕрдХреНрдЯреВрдмрд░ред_

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ
_рдЕрд░рд┐рдВрджрдо рдореЛрдЬреБрдорджрд╛рд░_
рдореИрдВ
HTML5 рдФрд░ jQuery рдЯреАрдо рд▓реАрдб

_рдЗрдВрдбрд╕ рдиреЗрдЯ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ_ http://www.indusnet.co.in
рдПрдХ рдЖрдИрдПрд╕рдУ 9001:2008 рдФрд░ рдЖрдИрдПрд╕рдУ 27001:2005 рдкреНрд░рдорд╛рдгрд┐рдд рдХрдВрдкрдиреА

рдбрди рдПрдВрдб рдмреНрд░реИрдбрд╕реНрдЯреНрд░реАрдЯ рджреНрд╡рд╛рд░рд╛ 2008 рдореЗрдВ рднрд╛рд░рдд рдореЗрдВ # 1 рдЖрдИрдЯреА рдПрд╕рдПрдордИ рдХрд╛ рджрд░реНрдЬрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛

Gtalk : [email protected]

рд╕реНрдХрд╛рдЗрдк: рдЕрд░рд┐рдВрджрдо_рдореЛрдЬреБрдорджрд╛рд░

рднреАрдбрд╝:+919830307843,+918420200614
рдлреЛрди: +91-33-32902857/23576070
рдЯреЛрд▓-рдлреНрд░реА (рдЕрдореЗрд░рд┐рдХрд╛ рдФрд░ рдХрдирд╛рдбрд╛): +1-888-652-2121
рдпреВрдХреЗ : +44-020-81444070

рдлреИрдХреНрд╕: +1-760-284-6062

рдЗрд╕ рд╕рдВрджреЗрд╢ рдореЗрдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдпрд╛ рдЧреЛрдкрдиреАрдп рд╣реЛ рд╕рдХрддреА рд╣реИ
рдФрд░ рдЗрдВрдбрд╕ рдиреЗрдЯ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ
http://www.indusnet.co.in/ред рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣
рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрджрд┐ рдЖрдк рдЗрдЪреНрдЫрд┐рдд рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдзрд┐рдХреГрдд рдирд╣реАрдВ рд╣реИрдВ
рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдкрдврд╝рдиреЗ, рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдП рд░рдЦрдиреЗ, рдкреНрд░рд╕рд╛рд░ рдХрд░рдиреЗ, рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдпрд╛ рдЙрд╕рдХрд╛ рдХреЛрдИ рднрд╛рдЧред рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рдЧрд▓рддреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
рдкреНрд░реЗрд╖рдХ рдХреЛ рддреБрд░рдВрдд рдФрд░ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреА рд╕рднреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рд╕рд┐рдВрдзреБ рдЬрд╛рд▓
рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА http://www.indusnet.co.in/ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рджрд╛рдпрд┐рддреНрд╡ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рд╡рд╛рдпрд░рд╕ рд╕рдВрдХреНрд░рдорд┐рдд рдореЗрд▓ред

@arindamm @niklasvh : рд╣реИрд▓реЛ рд╕рд░, рдУрд╡рд░рдлреНрд▓реЛ: рд╣рд┐рдбрди рдФрд░ рдорд╛рд░реНрдЬрд┐рди-рд▓реЗрдлреНрдЯ: -42px; рдореЗрд░реА рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рджреЗрдЦреЗрдВ рдпрд╛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ред

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

рдереВ, 29 рдЕрдХреНрдЯреВрдмрд░, 2015 рдХреЛ рдкреВрд░реНрд╡рд╛рд╣реНрди 11:12 рдмрдЬреЗ, рдпреЛ рдпреЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@arindamm https://github.com/arindamm @niklasvh
https://github.com/niklasvh : рд╣реИрд▓реЛ рд╕рд░, рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ :hidden is not
рдореЗрд░реА рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛ рд░рд╣реА рд╣реИред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдмрддрд╛рдПрдВ рдпрд╛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдХреГрдкрдпрд╛ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -152082507
.

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ
_рдЕрд░рд┐рдВрджрдо рдореЛрдЬреБрдорджрд╛рд░_
рдореИрдВ
HTML5 рдФрд░ jQuery рдЯреАрдо рд▓реАрдб

_рдЗрдВрдбрд╕ рдиреЗрдЯ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ_ http://www.indusnet.co.in
рдПрдХ рдЖрдИрдПрд╕рдУ 9001:2008 рдФрд░ рдЖрдИрдПрд╕рдУ 27001:2005 рдкреНрд░рдорд╛рдгрд┐рдд рдХрдВрдкрдиреА

рдбрди рдПрдВрдб рдмреНрд░реИрдбрд╕реНрдЯреНрд░реАрдЯ рджреНрд╡рд╛рд░рд╛ 2008 рдореЗрдВ рднрд╛рд░рдд рдореЗрдВ # 1 рдЖрдИрдЯреА рдПрд╕рдПрдордИ рдХрд╛ рджрд░реНрдЬрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛

Gtalk : [email protected]

рд╕реНрдХрд╛рдЗрдк: рдЕрд░рд┐рдВрджрдо_рдореЛрдЬреБрдорджрд╛рд░

рднреАрдбрд╝:+919830307843,+918420200614
рдлреЛрди: +91-33-32902857/23576070
рдЯреЛрд▓-рдлреНрд░реА (рдЕрдореЗрд░рд┐рдХрд╛ рдФрд░ рдХрдирд╛рдбрд╛): +1-888-652-2121
рдпреВрдХреЗ : +44-020-81444070

рдлреИрдХреНрд╕: +1-760-284-6062

рдЗрд╕ рд╕рдВрджреЗрд╢ рдореЗрдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдпрд╛ рдЧреЛрдкрдиреАрдп рд╣реЛ рд╕рдХрддреА рд╣реИ
рдФрд░ рдЗрдВрдбрд╕ рдиреЗрдЯ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ
http://www.indusnet.co.in/ред рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣
рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрджрд┐ рдЖрдк рдЗрдЪреНрдЫрд┐рдд рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдзрд┐рдХреГрдд рдирд╣реАрдВ рд╣реИрдВ
рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдкрдврд╝рдиреЗ, рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдП рд░рдЦрдиреЗ, рдкреНрд░рд╕рд╛рд░ рдХрд░рдиреЗ, рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдпрд╛ рдЙрд╕рдХрд╛ рдХреЛрдИ рднрд╛рдЧред рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рдЧрд▓рддреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
рдкреНрд░реЗрд╖рдХ рдХреЛ рддреБрд░рдВрдд рдФрд░ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреА рд╕рднреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рд╕рд┐рдВрдзреБ рдЬрд╛рд▓
рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА http://www.indusnet.co.in/ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рджрд╛рдпрд┐рддреНрд╡ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рд╡рд╛рдпрд░рд╕ рд╕рдВрдХреНрд░рдорд┐рдд рдореЗрд▓ред

рдЖрдк рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
http://www.jjoe64.com/2015/10/html2canvas-and-css-transform-rotate.html

рдпрд╣ рдЕрдиреБрдорд╛рди рдЕрднреА рднреА рдирд╣реАрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред

рд▓рдВрдмрд╡рдд рд╕рдВрд░реЗрдЦрдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрд╡рд╛рдж рд╡рд╛рдИ (рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрддрд╛ рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ)ред

рдореИрдВ

          img = document.createElement("img")
          img.src = canvas.toDataURL()
          newCanvas = document.createElement('canvas')
          ctx = newCanvas.getContext("2d")
          newCanvas.height = 350
          newCanvas.width = 200
          ctx.translate(185, 35)
          ctx.rotate(90 * Math.PI/180)
          ctx.drawImage(img,0,0); #draw it
          canvasURL = newCanvas.toDataURL()

html2canvas рд╕реЗ, рдореБрдЭреЗ рдХреИрдирд╡рд╛рд╕ рдорд┐рд▓рддрд╛ рд╣реИред рдореИрдВ рдлрд┐рд░ рдЙрдкрд░реЛрдХреНрдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдирдпрд╛ рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ 90 рдбрд┐рдЧреНрд░реА рдШреБрдорд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдКрдВрдЪрд╛рдИ, рдЪреМрдбрд╝рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ

рдмреЙрдХреНрд╕-рдЫрд╛рдпрд╛ css3 рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдзрдиреНрдпрд╡рд╛рдж

1.0.0 . рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ

@niklasvh рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреМрди рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ рдФрд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА?

рдШреБрдорд╛рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд▓рдЧрддрд╛ рд╣реИ

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

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

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

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

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

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

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