2013-03-17 93 views
5

我使用html2canvas拍攝了div的圖像,內容來自同一頁面,同一個域,但它顯示的是阿拉伯字母斷開連接,似乎html2canvas不支持阿拉伯語。使用html2canvas進行阿拉伯語編碼

雖然我正在閱讀其網頁上的可用詳細信息,但我沒有找到任何有用的信息。

下面是簡單的代碼我使用:

$("#import").click(function(){ 
    // send the contents of the email :) 
    html2canvas(document.body, { 
     onrendered: function(canvas) { 
      document.body.appendChild(canvas); 
     }, 
     letterRendering:true 
    }); 
}); 

how html2canvas renders the div

任何線索?

+1

可惜我不知道阿拉伯文應該是什麼樣子,但是,考慮看看插件後,它並沒有提供國際化或'i18n'任何廣泛的支持。我在github上爲你挖了一點,但不幸的是,唯一的項目是荷蘭和普通話。我發現的唯一的東西[即使是遠程關閉,是這個](https://vaadin.com/directory#addon/js-screenshot) - 不幸的是,這是一個包裝,你將不得不使用服務器端,並可能*要求學習曲線。祝你好運。 – Ohgodwhy 2013-03-17 09:12:59

+0

非常感謝你,我正在檢查它 – mfadel 2013-03-17 09:54:41

回答

0

你使用的是UTF-8編碼嗎?如果你的腦袋裏沒有<meta http-equiv="content-type" content="text/html; charset=UTF8">,那肯定不會工作:)希望這會有所幫助。

+0

當然,當然,我使用utf-8, 無論如何感謝:) – mfadel 2013-03-17 10:42:44

+0

@mfadel好吧我只是確保,你爲什麼選擇html2canvas的任何理由?我認爲jCanvas可能會更好,更容易,因爲您可能會多次遇到問題。 – 2013-03-17 10:46:12

+0

我會檢查它,我沒有看法,我只是想要一個可行的解決方案 – mfadel 2013-03-17 12:00:13

3

我想嘗試一些代碼操作&它unblivably工作。答案是取代:

textList = (!options.letterRendering && /^(left|right|justify|auto)$/.test(textAlign) && noLetterSpacing(getCSS(el, "letterSpacing"))) 

用:這是由(||)替換

textList = (!options.letterRendering || /^(left|right|justify|auto)$/.test(textAlign) || noLetterSpacing(getCSS(el, "letterSpacing"))) 

另行通知(& &)標誌。

+0

你究竟在哪裏取代了原來的文字?我無法在lib文件中找到它。 – ajawadmahmoud 2017-12-19 13:38:39