將html 變成 image
因為某一part 工作係要將個 email 變成pdf,
而email本身係html format, 咁應該點轉成 pdf 呢 ?
結果就寫左以下這個tools, 利用.net 本身的ie core
將html 變成一幅image, 然後再變成pdf
當寫順左就會好好用
但出了問題, pdf 容許放大文字的
但轉左做image 後, 放大就會起格仔
解決方法:在整個image 時, 變成 2 倍闊 ...
雖然只是治標, 但夠使 ...
WebBrowser wb = new WebBrowser();
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;
wb.NewWindow += new System.ComponentModel.CancelEventHandler(wb_NewWindow);
wb.AllowNavigation = true;
wb.DocumentText = config.htmlBody;
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
while (!config.WaitingComplete)
{
Application.DoEvents();
System.Threading.Thread.Sleep(100);
}
if (config.height == -1)
{
config.height = wb.Document.ActiveElement.ScrollRectangle.Height;
}
wb.Size = new System.Drawing.Size(config.width, config.height);
System.Drawing.Bitmap bm = new System.Drawing.Bitmap(config.width, config.height);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bm);
g.Clear(System.Drawing.Color.White);
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(0, 0, config.width, config.height);
wb.DrawToBitmap(bm, rect);
wb.Dispose();
config.result = bm;
....
void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WaitingComplete = true;
}
private static void wb_NewWindow(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
}
Labels: C#, html to image, html to pdf

0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home