首先要安装ABCpdf.NET

using WebSupergoo.ABCpdf9;

 
  
  1. public void getPdf(string name,string html)  
  2.     {  
  3.         Random r = new Random();  
  4.         Doc theDoc = new Doc();  
  5.         theDoc.TopDown = true;  
  6.         theDoc.Rect.String = "22 15 820 580";//控制显示的大小205 300 632 895  
  7.         theDoc.MediaBox.String = "0 0 842 595";//控制页面的大小  
  8.         string reg = @"/<a id/=(.)+/</a/>";//这段正则主要是去掉页面中自己不需要显示的东西  
  9.         string reg1 = @"body/{(.)+/}";  
  10.         //string temp = Regex.Replace(Regex.Replace(  GetHtmlData("~/硬件试产发布单/HPTrialRelease.aspx"), reg1, ""), reg, "");  
  11.         //temptemp = temp.Replace("{$name$}", name.Split(',')[0]).Replace("{$group$}", group);  
  12.         //string html = GetHtmlData("~/硬件试产发布单/HPTrialRelease.aspx");  
  13.          
  14.         int theID = theDoc.AddImageHtml(html, true, 0, false);  
  15.         while (true)  
  16.         {  
  17.             if (!theDoc.Chainable(theID))  
  18.             {  
  19.                 break;  
  20.             }  
  21.             theDoctheDoc.Page = theDoc.AddPage();  
  22.             theID = theDoc.AddImageToChain(theID);  
  23.         }  
  24.         XImage theImg = new XImage();  
  25.         theImg.SetFile(@"D:\项目源代码\DefaultCollection\代码库\保存PDF文件\SaveToPDF\Portal\WFRes\p_w_picpaths\checked.gif");  
  26.         theDoc.TopDown = true;  
  27.         theDoc.Rect.Left = 100;  
  28.         theDoc.Rect.Top = 100;  
  29.         theDoc.Rect.Width = theImg.Width;  
  30.         theDoc.Rect.Height = theImg.Height;  
  31.         theDoc.Rect.Magnify(1, 1);  //把图像放大2倍  
  32.         theDoc.AddImageObject(theImg, false);  
  33.         byte[] theData = theDoc.GetData();  
  34.         FileCreate(name, theData);  
  35.         if (File.Exists(HttpContext.Current.Server.MapPath(name + ".pdf")))  
  36.         {  
  37.             HttpContext.Current.Response.Write(string.Format("<a target='_blank' href='{0}'>下载</a>", name + ".pdf"));  
  38.         }  
  39.     }  
  40.  
  41. public static void FileCreate(string name, byte[] datas)  
  42.     {  
  43.         FileInfo CreateFile = new FileInfo(HttpContext.Current.Server.MapPath(name + ".pdf")); //创建文件   
  44.         if (CreateFile.Exists)  
  45.         {  
  46.             CreateFile.Delete();  
  47.         }  
  48.         FileStream FS = CreateFile.Create();  
  49.         FS.Write(datas, 0, datas.Length);  
  50.         FS.Close();  
  51.     }   
  52.  
  53. 调用方法:  
  54.  string html = "<html xmlns=\"http://www.w3.org/1999/xhtml\">";  
  55.         html += htmlcontent.Value;  
  56.         html += "</html>";  
  57. getPdf("out",html); 

 这个方法有个缺点,对图片的支持不好