Html2canvas: FontAwesome рдЖрдЗрдХрди рдХреЗрд╡рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ

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

FontAwesome http://fontawesome.io/ рдЖрдЗрдХрди рдХреНрд░реЛрдо рдореЗрдВ рдареАрдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдирд╣реАрдВред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдмреЙрдХреНрд╕ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред
rendering font awesome icons

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

рдлреЙрдиреНрдЯрд╡реНрдпреВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╕рдВрд╕реНрдХрд░рдг 'html2canvas 1.0.0-alpha.12' рдореЗрдВ рд╣реЛрддреА рд╣реИ

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

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

рдХрд╕реНрдЯрдо рдЖрдЗрдХрди рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдпрд╣ рд╕рдлрд╛рд░реА рдФрд░ рдХреНрд░реЛрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ IE рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреБрдЫ рдЦреБрджрд╛рдИ рд╣реБрдИ рдФрд░ рдЗрд╕рдиреЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 26 рдФрд░ IE 11 рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ред рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рд╣реИ:

https://github.com/niklasvh/html2canvas/blob/master/src/Parse.js#L951

рдореИрдВ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореЗрд░реА рдХреБрдЫ рдзрд╛рд░рдгрд╛рдПрдБ рдЧрд▓рдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреИрд░-рд╡реЗрдмрдХрд┐рдЯрдмреНрд░реЛрдЬрд╝рд░ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ getComputedStyles рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЧреБрдг { 0: 'fontFamily' } рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд░ рдкреНрд░рдореБрдЦ рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ { fontFamily: 'fontawesome' } рд╣реЛрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ Object.keys for in рд▓реВрдк рдХреЗ рд╕рд╛рде Object.hasOwnProperty рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк Object.keys() рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рд┐рд▓реНрдЯрд░ рд╡рд┐рдзрд┐ рдФрд░ forchach рд╡рд┐рдзрд┐ рдХреЛ for in рд▓реВрдк рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

for (var prop in elStyle) {
  if (indexedProperty(prop) && prop !== 'cssText') {
    // Prevent assigning of read only CSS Rules, ex. length, parentRule
    try {
      elps.style[prop] = elStyle[prop];
    } catch (e) {
      h2clog(['Tried to assign readonly property ', prop, 'Error:', e]);
    }
  }
}

рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ prop !== 'cssText' рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдмрдЧ?) рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЙрд╕ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЫрджреНрдо рддрддреНрд╡ рдкрд░ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдлреЙрдиреНрдЯрдлреИрдорд┐рд▓реА рдХреЛ рдлрд┐рд░ рд╕реЗ рд░реАрд╕реЗрдЯ рдХрд░ рджреЗрдЧрд╛ред

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

@ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рднреА рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреГрдкрдпрд╛ "рдкреБрд▓ рдЕрдиреБрд░реЛрдз" рднреЗрдЬреЗрдВред

рдзрдиреНрдпрд╡рд╛рдж! : +1:

рдХреНрдпрд╛ @Enome рдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрднреА рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рд╣реИ? рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдирдХреЗ рдХреЛрдб рдХреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@fpslater рдореИрдВрдиреЗ рдХрднреА рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЕрдЧрд░ рдореБрдЭреЗ рд╕рд╣реА рд╕реЗ рдпрд╛рдж рд╣реИ рддреЛ рдореИрдВ html -> рдХреИрдирд╡рд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рд╕реЗ рджреВрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп svg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

FontAwesome рдореЗрд░реЗ рд▓рд┐рдП рдХреНрд░реЛрдо рдФрд░ рдлреИрдВрдЯрдо рдЬреЗрдПрд╕ рдЬреИрд╕реЗ рд╡реЗрдмрдХрд┐рдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдореЗрдВ рднреА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

@kmdavis рдХреНрдпрд╛ рдЖрдкрдиреЗ html2canvas v0.5 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо html2canvas v0.5.0-Alpha рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдХреНрдпрд╛ рдЖрдк jsfiddle рдкрд░ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ http://jsfiddle.net/3ub69/52/ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдореБрдЭреЗ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдореИрдВ html2canvas v0.5 рдореЗрдВ рдХреИрд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реВрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрдЫрдирд╛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рд░реЗрдкреЛ рдкрд░ рдРрд╕реА рдХреЛрдИ рд╢рд╛рдЦрд╛ рдпрд╛ рдЯреИрдЧ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

PS рдореИрдВ gem 'rails-assets-html2canvas рдФрд░ рдирд┐рдореНрди bower.json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд░реЗрд▓ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ html2canvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

{
  "name": "My-App",
  "dependencies": {
    "html2canvas": "https://github.com/niklasvh/html2canvas"
  }
}

Https://rails-assets.org/compenders рдкрд░ рдЬреЛ рдХреБрдЫ рднреА рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕рд╕реЗ рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдХрд░рдг <= 0.4.1 рд░реЗрд▓-рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдмрд╕ рдЕрдкрдиреЗ app/assets/javascripts/vendor/ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдирд╡реАрдирддрдо dist / html2canvas.js рдЬреЛрдбрд╝ рджрд┐рдП рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@sweetleon рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдпрд╣рд╛рдВ рд╕рдВрд╢реЛрдзрд┐рдд рдПрдХ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ html2canvas.js рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

https://github.com/fpslater/fix-html2canvas-webkit-font-conversion

@sweetleon рдУрд╣ рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ ;-)

рдореБрдЭреЗ рднреА рдпрд╣реА рддрдХрд▓реАрдлрд╝ рд╣реИ

рдлреЙрдиреНрдЯрд╡реНрдпреВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╕рдВрд╕реНрдХрд░рдг 'html2canvas 1.0.0-alpha.12' рдореЗрдВ рд╣реЛрддреА рд╣реИ

рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди? рдзрдиреНрдпрд╡рд╛рдж

рдлреЙрдиреНрдЯрд╡реНрдпреВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╕рдВрд╕реНрдХрд░рдг 'html2canvas 1.0.0-rc.5 рдореЗрдВ рд╣реЛрддреА рд╣реИ

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