2011-07-19 78 views
4

我正在開發一個Web應用程序,它爲用戶提供了一個交互式反饋工具。在這個應用程序中,用戶可以點擊發送反饋按鈕。該按鈕在他們當前的網頁上放置一個疊加層,並允許他們拖動高亮區DIV s來強調某些區域。一旦他們提交了反饋,整個頁面的HTML就會通過AJAX傳遞迴服務器。如何將包含HTML的字符串呈現爲C#中的圖像?

一旦在服務器上,我現在有一個字符串包含頁面的HTML。從這裏我想通過某種引擎呈現HTML並構建圖像來運行此字符串。如果你願意的話,可以採取一些關於截圖的方法。

如何才能完成這樣的事情?是否有可用C#編寫的引擎,並且可以構建HTML並呈現圖像?

+2

選項1,請參閱Dillie的答案在這裏:http://stackoverflow.com/questions/334532/render-html-as-an-image –

+0

@DustinDavis是不是一個Web窗體控件?這是一個Web應用程序。 – Chev

+0

@Alex Ford,那個HTML字符串的CSS樣式怎麼樣?你在考慮渲染純粹的HTML嗎? – Tocco

回答

2

退房這個框架 - http://awesomium.com/

這正是你所需要的。

設置基本URL,這將是需要解決任何相對URL

WebCore.SetBaseDirectory("C:\\MyApplication\\MyBaseDirectory"); 

然後加載HTML -

myWebView.LoadHTML("<p>Hello World!</p>"); 

然後使用.Render()方法,你會能夠將渲染的內容保存到圖像。

+0

這絕對是我正在尋找。 – Chev

+0

D:除了2900美元以外!當然......可悲的是,我們公司的產品價值超過了10萬美元,但我知道他們不會以2900美元的價格出售,因爲我想要的價格相對簡單。 – Chev

+0

看起來,如果我想走便宜的路線,我將不得不堅持Google+的方式,並使用HTML 5中的「canvas」標記來繪製屏幕截圖。然後只限制HTML 4瀏覽器的功能。 – Chev

0

非常有趣的問題,我沒有得到你的銀彈。

你肯定會需要一些描述的瀏覽器引擎,然後將呈現的輸出捕獲爲位圖。

我從this question看到有一個爲WebKit開發的COM包裝器。也許這是一個很好的起點。

2

如果你想搭乘壁虎,你可以考慮使用LLMozLib。
看到更多細節here

編輯

有一個ActiveX控件嵌入壁虎在Windows上。
Sample here

編輯

我得到它的工作在Windows窗體應用程序。
使用these resources
這是一個csharp的包裝,以壁虎...

這是我的示例代碼...

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     Xpcom.Initialize(@"C:\Users\esouza\Downloads\xulrunner"); //Tell where are XUL bin 
     InitializeComponent(); 
     //geckoWebBrowser1 is an instance of GeckoWebBrowser control that I've dragged on the Form1 
     geckoWebBrowser1.DocumentCompleted += new EventHandler(geckoWebBrowser1_DocumentCompleted); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     geckoWebBrowser1.Navigate("http://www.google.com"); 
    } 

    void geckoWebBrowser1_DocumentCompleted(object sender, EventArgs e) 
    { 
     Bitmap b = new Bitmap(geckoWebBrowser1.Width, geckoWebBrowser1.Height); 
     geckoWebBrowser1.DrawToBitmap(b, new Rectangle { X = 0, Y = 0, Width = 800, Height = 600 }); 
     b.Save("file.bmp"); 
    } 
} 
+0

哦,哦...他們也改變了WebKit ... – Tocco

相關問題