c3 рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде html рд╕реЗ рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП wkhtmltopdf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, c3 (0.3.0) рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг wkhtmltopdf рдЕрдирд╛рдЙрдВрд╕ рдПрд░рд░ "рдЪреЗрддрд╛рд╡рдиреА: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд: 0 рдЯрд╛рдЗрдк рдПрд░рд░: 'рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд' рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ" рдмрдирд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рдкреАрдбреАрдПрдл рдЪрд╛рд░реНрдЯ рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджрд┐рдЦрд╛рддрд╛ рд╣реИред
c3 рдХрд╛ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд░реНрдЯ рдХреЛ рддреИрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╛рдИ рдФрд░ рдмрд╛рд░ рдЪрд╛рд░реНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рд╣реИред
wkhtmltopdf рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг html, css рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреИрдХреЗрдЬ рдкрд░ рд╣реИ
http://burgan.whitevector.com/images/bug_report.zip
wkhtmltopdf рдХрд╛ рдкреВрд░рд╛ рдЖрдЙрдЯрдкреБрдЯ:
рд╢рд╛рд░реНрдХ@рд╡рд┐рд░рд╢рд╛рд░реНрдХ :~/рдмрдЧ_рд░рд┐рдкреЛрд░реНрдЯ$ рд╢ рдЬрдирд░реЗрдЯ_рдкреАрдбреАрдПрдл.рд╢
рдкреЗрдЬ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ (1/6)
рдЪреЗрддрд╛рд╡рдиреА: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд: 0 рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: 'рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд' рдПрдХ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ
рдкреГрд╖реНрдареЛрдВ рдХреА рдЧрд┐рдирддреА (2/6)
рд▓рд┐рдВрдХреНрд╕ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ (4/6)
рд╢реАрд░реНрд╖рд▓реЗрдЦ рдФрд░ рдкрд╛рджрд▓реЗрдЦ рд▓реЛрдб рд╣реЛ рд░рд╣реЗ рд╣реИрдВ (5/6)
рдореБрджреНрд░рдг рдкреГрд╖реНрда (6/6)
рдХрд┐рдпрд╛ рд╣реБрдЖ
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ wkhtmltopdf
QtWebKit
wkhtmltopdf
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ Function.prototype.bind
рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ , рд╕реА 3 рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд┐рдзрд┐ред рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдлреИрдВрдЯрдордЬ рдПрдХреНрд╕рдкреЛрд░реНрдЯрд░ рд▓рд┐рдЦрд╛ рддреЛ рдореБрдЭреЗ рдЦреБрдж рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЙрдкрд╛рдп рд╣реИ:
Function.prototype.bind = Function.prototype.bind || function (thisp) {
var fn = this;
return function () {
return fn.apply(thisp, arguments);
};
};
рдореИрдВ wkhtmltopdf
рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдХреЛ рдкреЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдмрд╕ рдЗрд╕реЗ рд╕реА 3 рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛)
рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж! рдЕрдиреНрдп Javascripts рд╕реЗ рдкрд╣рд▓реЗ рдЙрди 6 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред
рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реБрд▓рдЭрддреА рджрд┐рдЦ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрдВрдж рдХрд░рдиреЗ рджреЗрдВред
@рдпреБрд╡реАрдп
@yuvii рддреБрдо рдХрдорд╛рд▓ рд╣реЛ!
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд▓реЗрдХрд┐рди vega / wkhtmltopdf
ред @Yuvii рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
@yuvii рддреБрдо рд░рд╛рдЬрд╛ рд╣реЛ!
@yuvii рдзрдиреНрдпрд╡рд╛рдж !!!!!
googlers рдХреЗ рд▓рд┐рдП, @yuvii рдиреЗ рдореЗрд░реА рдкреАрдврд╝реА рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ fullcalendar рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдореЗрдВ рдШрдВрдЯреЛрдВ рдмрд┐рддрд╛рдПред
рд╢реБрдХреНрд░рд┐рдпрд╛ред
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ @yuvii ред рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рдкрд░ рдЖрдпрд╛ рдЬрдм Google рдорд╛рдирдЪрд┐рддреНрд░ API рдмрджрд▓ рдЧрдпрд╛
рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕рдиреЗ рдореЗрд░реЗ django pdfkit рдореБрджреНрджреЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛!
рдзрдиреНрдпрд╡рд╛рдж @yuvii ред рдореИрдВрдиреЗ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдореЗрдВ рдШрдВрдЯреЛрдВ рдмрд┐рддрд╛рдП:
рдлреИрдмреНрд░рд┐рдХ.рдЬреЗрдПрд╕> рдПрдЪрдЯреАрдПрдордПрд▓> wkhtmltopdf> .pdf рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХреИрдирд╡рд╛рд╕ рдкрд░ рдбреНрд░рд╛рдЗрдВрдЧ
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдЪрдЯреАрдПрдордПрд▓ рд╕рд╣реА рдерд╛, рд▓реЗрдХрд┐рди рдЖрдЙрдЯрдкреБрдЯ .pdf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЦрд╛рд▓реА рдХреИрдирд╡рд╛рд╕ рдерд╛ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Fabric.js рдореЗрдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐
wkhtmltopdf
QtWebKit
wkhtmltopdf
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВFunction.prototype.bind
рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ , рд╕реА 3 рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд┐рдзрд┐ред рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдлреИрдВрдЯрдордЬ рдПрдХреНрд╕рдкреЛрд░реНрдЯрд░ рд▓рд┐рдЦрд╛ рддреЛ рдореБрдЭреЗ рдЦреБрдж рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЙрдкрд╛рдп рд╣реИ:Function.prototype.bind = Function.prototype.bind || function (thisp) { var fn = this; return function () { return fn.apply(thisp, arguments); }; };
рдореИрдВ
wkhtmltopdf
рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдХреЛ рдкреЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдмрд╕ рдЗрд╕реЗ рд╕реА 3 рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛)
рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛ рд▓рд┐рдпрд╛ред рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП C3js рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ред рдЪрд╛рд░реНрдЯ рдХрдВрдЯреЗрдирд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдпреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЕрджреНрднреБрдд рд╣реИрдВред рдореИрдВ рдЕрдм рдХреЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рд╡рд╣ рджреБрдирд┐рдпрд╛ рдЫреЛрдбрд╝ рджреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдХрднреА-рдХрднреА рдЬрд╛рддрд╛ рд╣реВрдВ, рдФрд░ рд╡рд┐рд╕реНрдордп рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ 5 рд╡рд░реНрд╖реЛрдВ рдФрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП _рдЗрддрдиреЗ рд▓реЛрдЧреЛрдВ_ рдХреА рдорджрдж рдХреА рд╣реИред рдпрд╣ рдкрд╛рдЧрд▓рдкрди рд╣реИред
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐
wkhtmltopdf
QtWebKit
wkhtmltopdf
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВFunction.prototype.bind
рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ , рд╕реА 3 рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд┐рдзрд┐ред рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдлреИрдВрдЯрдордЬ рдПрдХреНрд╕рдкреЛрд░реНрдЯрд░ рд▓рд┐рдЦрд╛ рддреЛ рдореБрдЭреЗ рдЦреБрдж рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЙрдкрд╛рдп рд╣реИ:Function.prototype.bind = Function.prototype.bind || function (thisp) { var fn = this; return function () { return fn.apply(thisp, arguments); }; };
рдореИрдВ
wkhtmltopdf
рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдХреЛ рдкреЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдмрд╕ рдЗрд╕реЗ рд╕реА 3 рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛)
рд╣реЛрд▓реА рдореМрд▓реА, рдореЗрд░реЗ рджрд┐рд▓ рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рдЦрд╛рд╕ рдЬрдЧрд╣ рд░рд╣реЗрдЧреАред рд╣рд╛рдИрдЪрд╛рд░реНрдЯ рдЧреНрд░рд╛рдл рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд░ рдкрд░ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди Wkhtmltopdf рдХреЗ рд╕рд╛рде рдкреАрдбреАрдПрдл рдореЗрдВ рдареАрдХ рд╕реЗ рдХрдирд╡рд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ рддреЛ рдЕрдкрдиреА рд╣рд╛рдИрдЪрд╛рд░реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╕ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрдирд╛рдПрдВред рдЕрдВрдд рдореЗрдВ 4 рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред Wkhtmltopdf рдФрд░ Highchart рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрди рддрд░реНрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ "wkhtmltopdf.exe --javascript-delay 10000 --no-stop-slow-scripts --enable-javascript --debug-javascript"
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐
wkhtmltopdf
QtWebKit
wkhtmltopdf
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВFunction.prototype.bind
рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ , рд╕реА 3 рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд┐рдзрд┐ред рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдлреИрдВрдЯрдордЬ рдПрдХреНрд╕рдкреЛрд░реНрдЯрд░ рд▓рд┐рдЦрд╛ рддреЛ рдореБрдЭреЗ рдЦреБрдж рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЙрдкрд╛рдп рд╣реИ:Function.prototype.bind = Function.prototype.bind || function (thisp) { var fn = this; return function () { return fn.apply(thisp, arguments); }; };
рдореИрдВ
wkhtmltopdf
рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдХреЛ рдкреЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдмрд╕ рдЗрд╕реЗ рд╕реА 3 рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛)
рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдКрдкрд░ рдХреА 6 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдкреНрд▓рдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣рд╛рдЗрдЯ рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд▓рдЧрднрдЧ 3 - 4 рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐
wkhtmltopdf
QtWebKit
wkhtmltopdf
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВFunction.prototype.bind
рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ , рд╕реА 3 рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд┐рдзрд┐ред рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдлреИрдВрдЯрдордЬ рдПрдХреНрд╕рдкреЛрд░реНрдЯрд░ рд▓рд┐рдЦрд╛ рддреЛ рдореБрдЭреЗ рдЦреБрдж рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЙрдкрд╛рдп рд╣реИ:Function.prototype.bind = Function.prototype.bind || function (thisp) { var fn = this; return function () { return fn.apply(thisp, arguments); }; };
рдореИрдВ
wkhtmltopdf
рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдХреЛ рдкреЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдмрд╕ рдЗрд╕реЗ рд╕реА 3 рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛)
рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛рдпрд╛ред рдПрдХ рд╕рд╛рде рдХрдИ рджрд┐рдиреЛрдВ рд╕реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рдерд╛: +1:
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐
wkhtmltopdf
QtWebKit
wkhtmltopdf
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВFunction.prototype.bind
рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ , рд╕реА 3 рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд┐рдзрд┐ред рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдлреИрдВрдЯрдордЬ рдПрдХреНрд╕рдкреЛрд░реНрдЯрд░ рд▓рд┐рдЦрд╛ рддреЛ рдореБрдЭреЗ рдЦреБрдж рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЙрдкрд╛рдп рд╣реИ:рдореИрдВ
wkhtmltopdf
рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдХреЛ рдкреЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдмрд╕ рдЗрд╕реЗ рд╕реА 3 рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛)