2012-01-18 77 views
7

我在VB中学习了一点jQuery和.Net。我创建了一个产品自定义工具,基本上在div上添加了文本,图像等。将Div内容保存为服务器上的图像

我被困在重要的舞台上!

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

我听说过我可以使用屏幕捕获服务器上的浏览器内容,这可能适用于低分辨率的拇指等,但这听起来有点麻烦!并且创建高分辨率图像真的很棒。

我也听说要将html转换为html5画布,然后写出来......但看起来太复杂了,以至于我无法理解并且浏览器支持是一个问题。

这是可能的.NET?

也许用javascript可以做些什么?

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

编辑:

我想也许我可以用这两种解决方案做的。理想情况下,我最终会得到一个正常的res JPG/PNG等在网站上显示,但也是一个打印准备好高分辨率文件也是非常可取的。

PostScript打印机 - 我听说过它,但我努力寻找一个很好的资源来为初学者理解它(特别是在维基百科黑)。也许我可以从我的div内容创建一个html页面并将其发送到EPS文件。任何人都知道这个有什么好的教程?

+0

创建浏览器进程的服务器端,从抢截图,保存图像。有完整的库。线程可能是一个问题,但总是比客户端更好。 – 2012-01-18 14:52:06

+0

感谢您的回复@CasparKleijne。你能推荐一个吗? – 2012-01-18 14:54:33

+2

另一种可能性是使用服务器端工具将HTML标记转换为像PDF这样的可伸缩表单,例如Prince或Flying Saucer。当然,如果包含图像文件,解决方案会有一些重大问题;对我来说这将是一个很大的挑战。为了在衬衫上印花,你需要一个相当高的DPI才能看起来很好。你有没有调查过像spreadshirt.com这样的地方呢? – Pointy 2012-01-18 14:55:11

回答

3

我们这么做了......大约10年前。有趣的是,可用的技术并没有太大改变。

更新 - 最佳答案

Spreadshirt授权他们的产品:http://blog.spreadshirt.net/uk/2007/11/27/everyones-a-designer-free-designers-for-premium-partners/

只是授权。除非你有真正的图形操作和印刷生产经验,否则不要自己动手。我想说,在今天的世界里,你正在寻找大约4000至5000小时的开发时间来复制他们做的事情......这就是如果你有两个顶级人员在做它。


简而言之:你不能在html中做到这一点。

稍长回答
它不会在一部分工作,因为你不能屏幕顶盖的客户端,并得到生产所需类型的打印分辨率的水平。现代屏幕分辨率通常在100 ppi左右。对于一个体面的打印,你真的需要密度的3到6倍之间的东西。否则,你会有很多像素,它通常看起来像废话,当它出来。

了不同的答案:
最好的办法是利用类似SVG(可缩放矢量图形),并提供一种拉丝表面的浏览器。有几种使用Flash的方法(Spreadshirt.com使用此方法)或Silverlight(不推荐)。我们使用闪光灯,它非常好。

可能能够脱离使用HTML 5.无论如何,您选择的任何路径都会变得复杂。

一旦用户对他们的绘图感到满意并希望将其打印出来,您就可以创建最终文件并运行一个流程将其转换为Postscript或您的T恤提供商所需的任何格式。转换器(又名RIP软件)要花费很长时间才能开发或花费大量资金......选择一个。 (有用的提示:买它,当时我们花了大约20万美元,而且比试图开发便宜得多)。

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

对于一个小背景,我们正在做定制的包装纸。用户添加了文本,从我们的图书馆中选择了图片或上传了自己的图片,并选择了一种模式。我们的照片出现在大幅面HP喷墨打印机(36英寸和60英寸宽)上。最终,我们花费了20万美元到30万美元,只是在开发资源上做到了这一点......不幸的是,我们必须出售的价格对于市场来说太高了。

+0

嗨克里斯,谢谢你的非常完整的答案。我们出售棉质包装袋,其中很多!我们有几台丝网印刷机,DTG,蜡转印,弯曲等。目前,任何想要打印的人都必须通过表格,电话等方式要求报价。我们接受从1到数百万的打印作业。没有最低限度。我已经调查过购买一套包装,价格在2500到5000英镑左右,这不是问题,但它们都以某种方式笨重。我希望自由发展这样的东西,改变风格,改变功能,定价结构等。保持简单,然后建立它。 – 2012-01-18 17:32:31

+0

@ user1147410:我会说电话/电子邮件扩展衬衫。看看他们的东西是否可以适应你的用例。他们确实看起来适合使用自己的全职员工,但也许你可以将这作为合作伙伴,以便他们可以通过某种类型的收入份额扩展自己的产品。可能是值得的。 – NotMe 2012-01-18 17:40:33

1

使用ajax调用将带有用户生成内容的整个div发送回服务器。 使用'HtmlTextWriter'类在服务器上生成一个HTML文档。 然后你可以转换使用外部工具,HTML文件中像

(1)http://www.officeconvert.com/products_website_to_image.htm#easyhtmlsnapshot

(2)http://html-to-image.acasystems.com/faq-html-to-picture.htm

这是不是免费的工具,但你可以通过在服务器上创建新的过程中使用它们。

+0

感谢您的意见,我会牢记这一点。我希望找到一种理想的免费方式。 – 2012-01-18 16:38:32

+1

有免费的工具将HTML转换为postscript http://www.w3.org/Tools/html2things.html – 2012-01-19 06:43:49

2

如果您可以使用某些服务器端工具,请检查phantomjs。这是一个无头的webkit浏览器(没有gui),它可以截取页面的截图,使用javascript api。它应该做的伎俩。

+0

谢谢我会看看这个,听起来不错。 – 2012-01-18 17:07:23

1

我碰到的最佳选择是wkhtmltopdf。它带有一个名为wkhtmltoimage的工具。它使用QtWebKit(WebKit渲染引擎的Qt端口)来渲染网页,并将结果转换为您选择的PDF或图像格式,全部在服务器端完成。

因为它使用WebKit,它就像现代浏览器一样呈现一切(图像,CSS,甚至JavaScript)。在我的使用案例中,结果非常令人满意,几乎与浏览器呈现的内容几乎相同。

要开始,你可能想看看如何在.NET运行外部工具: Execute an external EXE with C#.NET