Html2canvas: рдХреНрд░реЙрд╕ рдбреЛрдореЗрди рдЫрд╡рд┐рдпрд╛рдВ рд░реЗрдВрдбрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВ (рдХреЛрдИ CORS рдпрд╛ рдкреНрд░реЙрдХреНрд╕реА рдирд╣реАрдВ)

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

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

html2canvas($(".canvas-surround"), {
        logging: true,
        width: 1920 * getScale(),
        height: 1080 * getScale(),
        useCORS: false,
        onrendered: function(canvas) {

            var bottomCtx = canvas.getContext("2d");
            var topCtx = canvas.getContext("2d");
            var bData = bottomCtx.getImageData(0, 0, canvas.width, canvas.height);
            var tData = topCtx.getImageData(0, 0, canvas.width, canvas.height);

            var merged = mergeData(bData, tData);

            bottomCtx.putImageData(merged, 0, 0);

            var newImg = canvas.toDataURL("image/png");
            console.log(newImg);
            var blob = b64toBlob(newImg, "image/png");
            console.log(blob);

            var blobUrl = URL.createObjectURL(blob);

            console.log(blobUrl);

            downloadURI(blobUrl);
        }
    });

" http://www.thermmark.co.uk " рд╕реЗ " http://www.playgroundmarkingsdirect.co.uk " рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЬрдм рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ " http://www.thermmark.co.uk " рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рддреЛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЫрд╡рд┐рдпрд╛рдВ (рдореЗрд░реЗ рдкрд╛рд╕ рджреЛрдиреЛрдВ рдбреЛрдореЗрди рд╣реИрдВ)

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

Needs More Information

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

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ useCORS ptoperty рдХреЛ рд╕рддреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдХреНрд░реЙрд╕рдбреЛрдореЗрди рд╡реЗрдм рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ

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

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ useCORS ptoperty рдХреЛ рд╕рддреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдХреНрд░реЙрд╕рдбреЛрдореЗрди рд╡реЗрдм рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ

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

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдореЗрд░реЗ рдлрд┐рдХреНрд╕ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА? https://github.com/niklasvh/html2canvas/pull/554

рд╢рд╛рдпрдж allowTaint рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдк рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдХреНрдпреЛрдВ рди userCORS рдпрд╛ proxy ... рд╡реЗ рд╕рд┐рд░реНрдл рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдереЗред

@brcontainer рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдореЗрд░рд╛ рд╕реБрдзрд╛рд░ рджреЗрдЦреЗрдВ: https://github.com/niklasvh/html2canvas/pull/554

@ рдХреНрд░рд┐рд╕реНрдЯреА 94 рдЬрд╝рд░реВрд░ !! рдмрдврд╝рд┐рдпрд╛ рд╕реБрдзрд╛рд░! рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдп @ рдХреНрд░рд┐рд╕реНрдЯреА 94 ,

рдореИрдВ рдЕрдкрдиреЗ рдПрдЪрдЯреАрдПрдордПрд▓ рдореЗрдВ рд╕реАрдПрдордПрд╕ (рдХрдВрдЯреЗрдВрдЯрдлреБрд▓) рд╕реЗ рдЗрдореЗрдЬ рд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЙрд╕ рдПрдЪрдЯреАрдПрдордПрд▓ рдХрд╛ рдкреАрдбреАрдПрдл рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рд▓реЗрдХрд┐рди рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдкреАрдбреАрдПрдл рдореЗрдВ, рдЫрд╡рд┐рдпрд╛рдВ рдЧрд╛рдпрдм рд╣реИрдВред (рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд░реЙрд╕ рдУрд░рд┐рдЬрд┐рди рдХрд╛ рдореБрджреНрджрд╛ рд╣реИ)ред
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕реБрдЭрд╛рд╡ рджреЗрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдХреИрд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВред
рдиреАрдЪреЗ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ-:

рдлрдВрдХреНрд╢рди рдбрд╛рдЙрдирд▓реЛрдбрдкреАрдбреАрдПрдл () {
рд╡рд░ рдХреИрдирд╡рд╛рд╕рдЯреЙрдЗрдореЗрдЬ = рдлрд╝рдВрдХреНрд╢рди (рдХреИрдирд╡рд╛рд╕) {
рд╡рд░ img = рдирдИ рдЫрд╡рд┐ ();
var dataURL = рдХреИрдирд╡рд╛рд╕.toDataURL ('рдЫрд╡рд┐/рдкреАрдПрдирдЬреА');
img.crossOrigin = "рдмреЗрдирд╛рдореА";
img.src = dataURL;
рд╡рд╛рдкрд╕реА рдЖрдИрдПрдордЬреА;
};

рд╡рд░ рдХреИрдирд╡рд╛рд╕рд╢рд┐рдлреНрдЯ рдЗрдореЗрдЬ = рдлрд╝рдВрдХреНрд╢рди (рдкреБрд░рд╛рдирд╛ рдХреИрдирд╡рд╛рд╕, рд╢рд┐рдлреНрдЯ рдПрдПрдордЯреА) {
ShiftAmt = parseInt(shiftAmt) || 0;
рдЕрдЧрд░ (! рд╢рд┐рдлреНрдЯ рдПрдПрдордЯреА) {рдкреБрд░рд╛рдирд╛ рдХреИрдирд╡рд╛рд╕ рд▓реМрдЯрд╛рдПрдВ; }

var newCanvas = document.createElement('canvas');
newCanvas.height = oldCanvas.height - shiftAmt;
newCanvas.width = oldCanvas.width;
var ctx = newCanvas.getContext('2d');
ctx.mozImageSmoothingEnabled = рдЕрд╕рддреНрдп;
ctx.webkitImageSmoothingEnabled = рдЕрд╕рддреНрдп;
ctx.msImageSmoothingEnabled = рдЕрд╕рддреНрдп;
ctx.imageSmoothingEnabled = рдЕрд╕рддреНрдп;

var img = рдХреИрдирд╡рд╛рд╕рдЯреЙрдЗрдореЗрдЬ (рдкреБрд░рд╛рдирд╛ рдХреИрдирд╡рд╛рд╕);
ctx.drawImage(img,0, shiftAmt, img.width, img.height, 0, 0, img.width, img.height);

рдирдпрд╛ рдХреИрдирд╡рд╛рд╕ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ;
};

рд╡рд░ рдХреИрдирд╡рд╛рд╕рдЯреЙрдЗрдореЗрдЬрд╕рдХреНрд╕реЗрд╕ = рдлрдВрдХреНрд╢рди (рдХреИрдирд╡рд╛рд╕) {
рд╡рд░ рдкреАрдбреАрдПрдл = рдирдпрд╛ рдЬреЗрдПрд╕рдкреАрдбреАрдПрдл ('рдПрд▓', 'рдкреАрдПрдХреНрд╕'),
pdfInternals = pdf.internal,
pdfPageSize = pdfInternals.pageSize,
pdfScaleFactor = pdfInternals.scaleFactor,
pdfPageWidth = pdfPageSize.width,
pdfPageHeight = pdfPageSize.height,
рдЯреЛрдЯрд▓рдкреАрдбреАрдПрдлрд╣рд╛рдЗрдЯ = 0,
htmlPageHeight = рдХреИрдирд╡рд╛рд╕.рдКрдВрдЪрд╛рдИ,
htmlScaleFactor = рдХреИрдирд╡рд╛рд╕.рдЪреМрдбрд╝рд╛рдИ / (pdfPageWidth * pdfScaleFactor),
рд╕реЗрдлреНрдЯреАрдиреЗрдЯ = 0;

рдЬрдмрдХрд┐ (рдХреБрд▓ рдкреАрдбреАрдПрдл рд╣рд╛рдЗрдЯ <рдПрдЪрдЯреАрдПрдордПрд▓рдкреЗрдЬрд╣рд╛рдЗрдЯ && рд╕реЗрдлреНрдЯреАрдиреЗрдЯ <15){
рд╡рд░ рдирдпрд╛ рдХреИрдирд╡рд╛рд╕ = рдХреИрдирд╡рд╛рд╕рд╢рд┐рдлреНрдЯ рдЗрдореЗрдЬ (рдХреИрдирд╡рд╛рд╕, рдХреБрд▓ рдкреАрдбреАрдПрдл рд╣рд╛рдЗрдЯ);
pdf.addImage(newCanvas, 'png', 0, 0, pdfPageWidth, 0, null, 'NONE');
// рд╡рд░ рдЙрдкрдирд╛рдо = Math.random().toString(35);
// pdf.addImage (newCanvas, 0, 0, pdfPageWidth, 0, 'png', рдЙрдкрдирд╛рдо, 'рдХреЛрдИ рдирд╣реАрдВ');

TotalPdfHeight += (pdfPageHeight * pdfScaleFactor * htmlScaleFactor);

рдЕрдЧрд░ (рдХреБрд▓ рдкреАрдбреАрдПрдл рд╣рд╛рдЗрдЯ <рдПрдЪрдЯреАрдПрдордПрд▓рдкреЗрдЬрд╣рд╛рдЗрдЯ){
рдкреАрдбреАрдПрдл.рдПрдбрдкреЗрдЬ ();
}
рд╕реЗрдлреНрдЯреАрдиреЗрдЯ++;
}

рд╡рд░ рдкреЗрдЬрдирд╛рдо = document.location.pathname.match(/[^/]+$/)[0];
pdf.save (рдкреЗрдЬрдирд╛рдо + '.pdf');
};

html2canvas($('body')[0],
{
рдСрдирд░реЗрдВрдбрд░: рдлрд╝рдВрдХреНрд╢рди (рдХреИрдирд╡рд╛рд╕) {
рдХреИрдирд╡рд╛рд╕рдЯреЙрдЗрдореЗрдЬрд╕рдХреНрд╕реЗрд╕ (рдХреИрдирд╡рд╛рд╕);
}
});
}

рдЕрд░реЗ, рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛? рд╕реАрдУрдЖрд░рдПрд╕ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рднреА рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :(

рд╣рд╛рдп рд░реВрдХреЗрд╡,

рдЖрдк html2canvas рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рд╕реА рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкрд╛рд╕ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ :)

html2canvas($('#div_pdf')[0],
{
useCORS: true, // рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкреАрдбреАрдПрдл рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреНрд░реЙрд╕ рдореВрд▓ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдСрдирд░реЗрдВрдбрд░: рдлрд╝рдВрдХреНрд╢рди (рдХреИрдирд╡рд╛рд╕) {
рдХреИрдирд╡рд╛рд╕рдЯреЙрдЗрдореЗрдЬрд╕рдХреНрд╕реЗрд╕ (рдХреИрдирд╡рд╛рд╕);
}
});
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП URL рдкрд░ html2canvas рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ-:
https://html2canvas.hertzen.com/documentation.html

рд╣рд╛рдп @ рдЧреМрд░рд╡рдорд┐рд╢реНрд░рд╛ 24 , рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЙрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рд╕рд░реНрд╡рд░ рдХрд╛ рдзреНрд╡рдЬ рд╣реИ

Access-Control-Allow-Origin: *

рд╕реЗрдЯ рдирд╣реАрдВ

:(

рд╣рд╛рдп рд░реВрдХреЗрд╡,

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рддрд╛рдХрд┐ рдореИрдВ рдЙрд╕ рдкрд░ рдПрдХ рдмреЗрд╣рддрд░ рдирдЬрд╝рд░ рд░рдЦ рд╕рдХреВрдБ .....

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

рдХреНрдпрд╛ рдЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╣рд▓ рд╣реИ? рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде CORS рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЪрд┐рддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрднреА рднреА рдХреНрд░реЙрд╕-рдУрд░рд┐рдЬрд┐рдирд▓ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рд╕рд╛рде рд╣реА, рд╡рд┐рддрд░рд┐рдд html2Canvas.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Cristy94 рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред рд╡рд┐рддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рднреА, https://github.com/niklasvh/html2canvas/pull/554/commits/87d44359be73075ba4d5f36d6e1c8b88b7444402 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП, рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде, рдХреЛрдгреАрдп 2 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ?
рд╡рд░реНрддрдорд╛рди рд╕рд╛рдЗрдЯ (https://github.com/niklasvh/html2canvas/wiki/Proxies) рд╕реВрдЪреА рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рд╣реИ!

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА v1.0.0 рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ jsfiddle рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

@niklasvh рдпрд╣рд╛рдБ v1.0.0 рдХреЗ рд╕рд╛рде рдХреЛрдбрдкреЗрди рдкрд░ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
https://codepen.io/Onlylonger/pen/ppjPKX
рдПрдХ рд╣реА quesiton. рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬрд┐рд╕реЗ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдЪрд┐рдд рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@vinayistar рдЖрдк рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ https://github.com/niklasvh/html2canvas/issues/1544#issuecomment -435640901

useCORS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ img рд╡рд┐рд╢реЗрд╖рддрд╛ crossOrigin:anonymous

{ useCORS: false, allowTaint: true } рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЫрд╡рд┐ рд╕реНрд░реЛрдд рдХреЛ рдмреЗрд╕ 64 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ

const img = document.querySelector('#img')
fetch(img.src)
  .then(res => res.blob())
  .then(blob => new Promise((resolve, reject) => {
      const reader = new FileReader;
      reader.onerror = reject;
      reader.onload = () => {
        resolve(reader.result);
      };
      reader.readAsDataURL(blob);
    })
  )
  .then(dataURL => {
    img.src = dataURL
    return html2canvas(element)
  } )

@todoi рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдирдореВрдирд╛ jspdf рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕-рдХрдВрдЯреНрд░реЛрд▓-рдЕрдиреБрдорддрд┐-рдЙрддреНрдкрддреНрддрд┐ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдХреНрд░реЙрд╕-рдУрд░рд┐рдЬрд┐рдирд▓ рдПрдХреНрд╕реЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓ рд╕рдХреЗред
CORS_enabled_image рд╕реЗ

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

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

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

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

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

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

yasergh picture yasergh  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ