一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

C# 生轉(zhuǎn)換網(wǎng)頁(yè)為pdf

從htm生成pdf大概可以分兩步實(shí)現(xiàn),第一步,解析htm,就是將htm源文件中那一對(duì)文本轉(zhuǎn)換為瀏覽器最終呈現(xiàn)給我們那種圖文并茂的結(jié)果。這是一個(gè)不可完成的任務(wù),因?yàn)槟壳盀橹箻I(yè)界的軟件巨頭也沒(méi)有誰(shuí)把htm解析做得很好的。對(duì)比ie、firefox等瀏覽器的顯示結(jié)果便可想而知。既然業(yè)界難題,我也就不去鉆牛角尖做技術(shù)攻關(guān)了,先跳過(guò)這步,考慮下一步的事情。
第二步,繪制pdf,這個(gè)簡(jiǎn)單,網(wǎng)上有很多資料,有興趣的朋友可以研究 pdf的文件格式,安裝二進(jìn)制組裝pdf。我有興趣,然而沒(méi)有時(shí)間,我覺(jué)得軟件從業(yè)者時(shí)刻都應(yīng)該關(guān)注最有價(jià)值的事情。軟件從業(yè)者要提高效率的第一法門(mén)便是重用,網(wǎng)上有一個(gè)叫itextsharp的東西是用來(lái)繪制pdf的,可以免費(fèi)使用而且開(kāi)源
下載itextsharp,試著用itextsharp繪制htm看看效果,如您所料,繪制出的是htm的源代碼。因?yàn)榈谝徊降氖虑槲覀冞€沒(méi)有解決,下面來(lái)解決第一步的事情。
記得很久以前見(jiàn)過(guò)一個(gè).NET寫(xiě)的網(wǎng)頁(yè)snap工具,大概思路是利用webbrowser的DrawToBitmap方法將ie的顯示結(jié)果輸出到Sytem.Drawing.Bitmap對(duì)象。大概代碼如下:
//WebBrowser wb=null;
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(w, h);
wb.DrawToBitmap(bmp, new System.Drawing.Rectangle(0,0, w, h));
ok,htm可以解析了,現(xiàn)在重組剛才的代碼,思路如下:
使用webbrowser將htm解析并轉(zhuǎn)換為圖片,使用itextsharp將剛才的圖片繪制成pdf。
有用是給公司開(kāi)發(fā)的功能,暫時(shí)不便公開(kāi)源碼,提供我編譯后的工具供下載使用,您也可以根據(jù)上面的思路定制:
使用方法,
1.將單個(gè)url轉(zhuǎn)換為pdf:PageToPDF.exe "http://www.g.cn/" "google.jpg"
2.將多個(gè)url轉(zhuǎn)換為pdf:pagetopdf.exe task.txt "C:/pdfdir/"
task.txt是任務(wù)里表,里面提供多行url,每個(gè)url以#文件名為后綴,如:http://www.baidu.com/#b表示將http://www.baidu.com/轉(zhuǎn)換為pdf文件名為b(擴(kuò)展名系統(tǒng)自己會(huì)追加)
ASP.NET環(huán)境下使用
將pagetopdf上傳至網(wǎng)站中,設(shè)定好目錄權(quán)限,示例代碼:
復(fù)制代碼 代碼如下:
public static bool CreatePPDF(string url,string path)
{
try
{
if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(path))
return false;
Process p = new Process();
string str = System.Web.HttpContext.Current.Server.MapPath("~/afafafasf/PageToPDF.exe ");
if (!System.IO.File.Exists(str))
return false;
p.StartInfo.FileName = str;
p.StartInfo.Arguments = " /"" + url + "/" " + path;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
System.Threading.Thread.Sleep(500);
return true;
}
catch(Exception ex)
{
Sys.Log.error("Pdf create err.",ex);
}
return false;
}

特性
在使用任務(wù)形式工作時(shí),系統(tǒng)會(huì)啟動(dòng)多個(gè)進(jìn)程,即任務(wù)管理器中會(huì)有多個(gè)pagetopdf.exe的進(jìn)程,這是系統(tǒng)調(diào)度程序自己?jiǎn)?dòng)的,為了加個(gè)任務(wù)處理速度。進(jìn)程數(shù)由調(diào)度程序自己控制,最多不會(huì)超過(guò)十個(gè)。

AspNet技術(shù)C# 生轉(zhuǎn)換網(wǎng)頁(yè)為pdf,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品国产区一区二区三区在线观看 | 国产一二区视频 | 在线视频久 | 亚洲国产小视频 | 精品视频福利 | 成年美女黄网站色大 | 免费黄色视屏 | 国产综合视频在线观看 | 黄网站色成年片大免费软件 | 国产精品综合视频 | 中国日韩欧美中文日韩欧美色 | 亚洲区小说区图片区qvod | 国产国语在线播放视频 | 久久99国产精品免费观看 | 极品美女一级毛片免费 | 婷婷在线观看视频 | 一本久道久综合久久鬼色 | 色老板在线视频观看 | 99爱精品视频 | 伊人狼人视频 | 国产午夜视频在线观看 | 天天在线天天综合网色 | 美女毛片在线看 | 国产99视频精品草莓免视看 | 亚洲国产欧美91 | 亚洲成人手机在线观看 | 久久国产区 | 天天舔天天操 | xxx日本在线 | 婷婷的五月 | fefe66毛片免费看 | 精品91一区二区三区 | 国产精品视频播放 | 欧美人与zoxxxx另类9 | 伊人久久五月 | 色播在线视频 | 婷婷亚洲激情 | 嫩草免费 | 成人在线激情 | 成年人午夜免费视频 | 男人操女人免费视频 |