2012-01-18 76 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