Javascript 将Div内容另存为服务器上的映像

Javascript 将Div内容另存为服务器上的映像,javascript,jquery,asp.net,vb.net,Javascript,Jquery,Asp.net,Vb.net,我一直在学习VB中的jQuery和.Net。我已经创建了一个产品定制工具,基本上可以将div分层,并在tshirt上添加用户的文本、图像等 我被困在一个重要的舞台上 我需要能够转换的div内容,包装所有这些div的文本和图像到一个平面图像考虑到任何CSS已经应用到它 我听说我可以用屏幕捕捉服务器上浏览器的内容,这可能是低分辨率的拇指等,但听起来有点麻烦!如果能创建一个高分辨率的图像,那就太好了 我也听说过将html转换成html5画布,然后再写出来。。。但看起来太复杂了,我无法理解,浏览器支持是

我一直在学习VB中的jQuery和.Net。我已经创建了一个产品定制工具,基本上可以将div分层,并在tshirt上添加用户的文本、图像等

我被困在一个重要的舞台上

我需要能够转换的div内容,包装所有这些div的文本和图像到一个平面图像考虑到任何CSS已经应用到它

我听说我可以用屏幕捕捉服务器上浏览器的内容,这可能是低分辨率的拇指等,但听起来有点麻烦!如果能创建一个高分辨率的图像,那就太好了

我也听说过将html转换成html5画布,然后再写出来。。。但看起来太复杂了,我无法理解,浏览器支持是一个问题

这在.NET中可能吗

也许可以用javascript做些什么

任何正确方向的帮助或指导都将不胜感激

编辑:

我在想也许我可以用两种方法来解决这个问题。理想情况下,我最终会在网站上显示一个正常的分辨率jpg/png等,但同时也需要一个打印就绪的高分辨率文件


PostScript打印机-我听说过,但我很难找到一个好的资源来为初学者理解它(尤其是wiki黑屏)。也许我可以从我的div内容创建一个html页面,并将其发送到一个EPS文件进行打印。有人知道这方面的好教程吗?

使用ajax调用将包含用户生成内容的整个div发送回服务器。 使用“HtmlTextWriter”类在服务器上生成HTML文档。 然后,您可以使用诸如

(一)

(二)


这些不是免费工具,但您可以通过在服务器上创建新流程来使用它们。

如果您可以使用某些服务器端工具,请选中。这是一个无头webkit浏览器(没有gui),它可以截取页面的屏幕,并使用javascript api。它应该会起作用。

我们这样做了。。。大约10年前。有趣的是,现有的技术确实没有太大变化

更新-最佳答案

Spreadshirt授权其产品:

只要授权就行了。不要自己做这件事,除非你有真正的图形处理和打印生产经验。我要说的是,在今天的世界中,你需要大约4000到5000小时的开发时间来复制他们所做的事情。。。如果你有两个顶级人员在做这件事


简短回答:您不能在html中执行此操作。

稍长一点的回答
它不起作用的部分原因是,您无法在客户端设置屏幕上限,并获得生产类型打印所需的分辨率级别。现代屏幕分辨率通常在100 ppi左右。要得到一个像样的印刷品,你真的需要3到6倍的密度。否则你会有大量的像素化,当它出来的时候通常看起来像垃圾

另一个答案:
最好的办法是利用SVG(可伸缩矢量图形)之类的工具,并为浏览器提供一种类型的绘图表面。有几种使用Flash(Spreadshirt.com使用)或Silverlight(不推荐)的方法。我们用的是flash,非常好

您也许可以使用HTML5。不管怎样,无论你选择哪条路都会很复杂

一旦用户对其绘图满意并希望将其打印出来,您就可以创建最终文件并运行一个过程将其转换为Postscript或t恤提供商需要的任何格式。转换器(又名RIP软件)要么需要很长的时间来开发,要么要花很多钱。。。挑一个。(有用的提示:买它。那时,我们花了大约2万美元,比尝试开发要便宜得多)

当然,这忽略了诸如颜色匹配和校准等问题。这实际上是我们的主要问题。每个人的显示器都略有不同,在一台机器上看起来是红色的,在另一台机器上看起来是粉红色的


作为一个小背景,我们在做定制包装纸。用户添加文本、从我们的库中选择图像或上传自己的图像,并选择一种模式。我们的印刷品采用大幅面HP喷墨打印机(36英寸和60英寸宽)。最终,我们仅仅在开发资源上花费了20万到30万美元来实现这一目标。。。不幸的是,我们不得不以太高的价格出售。我遇到的最好的选择是。它附带了一个名为wkhtmltoimage的工具。它使用QtWebKit(WebKit呈现引擎的Qt端口)呈现网页,并将结果转换为您选择的PDF或图像格式,所有操作都在服务器端完成

因为它使用WebKit,所以它可以像现代浏览器一样呈现所有内容(图像、css甚至javascript)。在我的用例中,结果非常令人满意,与浏览器呈现的结果几乎相同

首先,您可能希望了解如何在.NET中运行外部工具:

创建浏览器进程服务器端,从中抓取屏幕截图,保存图像。这方面有完整的库。线程可能是一个问题,但总是比客户端好。感谢您的回复@CasparKleijne。你能推荐一种吗?另一种可能是使用服务器端工具将HTML标记转换为可伸缩的格式,如PDF,如Prince或Flying Discer。当然,如果包含图像文件,分辨率会有一些重大问题;对我来说,这将是一个巨大的挑战。要在衬衫上打印,您需要相当高的DPI,以使其看起来好看。你调查过像spreadshirt.com这样的网站是做什么的吗。是的,我看过这件衬衫。非常好的网站。不知道他们在用什么!我刚刚读了另一篇文章,也许是打印出来的附言