2013-03-17 89 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