Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE8中的可打印旋转_Javascript_Printing_Internet Explorer 8_Rotation - Fatal编程技术网

Javascript IE8中的可打印旋转

Javascript IE8中的可打印旋转,javascript,printing,internet-explorer-8,rotation,Javascript,Printing,Internet Explorer 8,Rotation,如何在IE8中打印旋转内容(div)?DXImageTransform筛选器选项似乎不可打印 只是把它放在上下文中。我正在编写一个纯基于dom的画布库,名为。我正在拼命尝试在IE8中提供文本、矩形和图像的旋转,而不使用VML回退,因为这样做既丑陋又缓慢,而且容易出错。VML回退在我的待办事项清单上,因为我承认这是我知道如何在IE8中做到这一点的唯一方法,而无需其他工具。我希望在第三方或服务器端需求中没有一些我遗漏的技巧。如果你已经找到了它,一笔赏金正朝你走来。根据你的需要,也可以使用-ms-

如何在IE8中打印旋转内容(div)?DXImageTransform筛选器选项似乎不可打印



只是把它放在上下文中。我正在编写一个纯基于dom的画布库,名为。我正在拼命尝试在IE8中提供文本、矩形和图像的旋转,而不使用VML回退,因为这样做既丑陋又缓慢,而且容易出错。VML回退在我的待办事项清单上,因为我承认这是我知道如何在IE8中做到这一点的唯一方法,而无需其他工具。我希望在第三方或服务器端需求中没有一些我遗漏的技巧。如果你已经找到了它,一笔赏金正朝你走来。

根据你的需要,也可以使用-ms-transform。请务必阅读编辑,因为其中有一些错误。

这是一个巨大的延伸,但这是我能想到的最好的想法:

浏览器画布——通过滥用VML实现IE8中的画布

HTML2Canvas--可以将文档呈现到画布上,然后可以旋转画布

如果做不到这一点,我怀疑您唯一的选择是生成一个旋转的文档服务器端,并将其交给客户端进行打印

编辑:另一个最后的办法是通过Silverlight处理打印,将页面嵌入Silverlight内部的browsercontrol(恶心),旋转该控件并通过SL打印结果


不过,对于传统浏览器中客户端的任何内容,这里都要抓住救命稻草。

可以接受吗?我猜它不是一个LOB应用程序,但它可以提供您所需要的功能,而不会让用户从严格意义上脱离IE8。这只是另一个探索的途径。

-p>这将旋转图像,它使用VML在IE8中实现。需要注意的是,您要旋转的任何文本都必须是图像。

我从未使用过它,这需要一些工作,但您尝试过吗?基本上,如果浏览器支持SVG,它会使用SVG,如果浏览器不支持,它会使用Flash。因为它是一个flash对象,所以渲染后可以像打印图像一样打印它


这里还有一些演示:

遗憾的是,如果没有CSS或使用图像,您无法在IE8中旋转东西。更可悲的是,过滤器缺陷在浏览器级别,因此修补它似乎不太可能。是您希望整个页面旋转,还是只想在页面中显示旋转的元素?我同意Zirak的观点。我想推测,对于ActiveX HTA,这几乎是不可能的——例如,首先,如果你能想出如何使用ActiveX从剪贴板中删除内容,你就会在那里,但我非常怀疑。你说的是在基础级别上覆盖浏览器级别的功能,这在一定程度上是困难的,因为安全性的影响。(顺便说一句,刚刚记住,获取屏幕截图。)这对我在IE8中打印旋转div有什么帮助?哦,对不起,我的错。链接因某种原因被删除。请查看编辑。我知道所有这些选项,但它们都不够好。到目前为止,我认为服务器端渲染是最好的选择(我已经用wkhtmltoimage实现了这一点),但我真的觉得奇怪的是DXImageTransform永远不会打印,而且没有其他选择。有各种各样的插件解决方案(flash、java、silverlight),但我还没有找到一个可以通过在原始html元素上设置属性/样式来工作的答案。请记住,IE8的速度足够慢,因为它不需要在打印时生成VML或加载插件,也不需要等待服务器生成图像。DXImageTransform无法工作的原因是,它仅适用于DirectX在屏幕上呈现文档时,这当然不适用于打印机。或者更确切地说,奇怪的是,浏览器提供了无法打印的功能。我想我已经用尽了各种研究方法,但没有借助插件。IE8在打印时不会这样做。您的客户将不得不接受等待服务器执行此操作作为使用旧浏览器的折衷方案。对于那些认为延迟不可接受的人,他们将不得不使用另一个浏览器。对不起,我再也帮不上忙了,我承认失败了。这是不可能实现旋转的方式,我想,这个答案涵盖了最好的选择。我强烈建议在VML或Flash之前进行服务器端渲染。我会将此选项烘焙到我的简单画布库中,以便在服务器端轻松复制画布。这是我已经探索过的一条途径,是的,这是一种在IE8中正确显示页面的解决方案。我已经在我的网站上启用了chrome框架,但是一些客户无法安装chrome框架,尽管它可以在没有管理员权限的情况下工作。有很多方法可以绕过IE8,但这不是我在这里要做的。我正在尝试使用IE8,因为它存在于标准安装中。我应该能够分发一个模块,在打印的其他元素中呈现旋转文本,而不强加第三方或服务器端要求。请参见OpenLayers作为不打印的VML示例。