title: How to download PDF file into client system?
body: <p>I want to download a PDF file from server side into client system. A Report page is changed into PDF file and saved into a project folder that is on server side. Here the problem is that when I access it from client system and try to generate PDF file then I am not sure whether it has successfully generated a PDF file into server side project folder or not and it is not automatically downloaded into the client system. But when I run project from local system then it is working correctly. </p>
  
  <p>Here I post my code, please check it and please give me a solution for this, I need it very much</p>
  
  <p>My code is:</p>
  
  <pre><code>protected void btn_print_Click(object sender, EventArgs e)
          {
              try
              {
                  string url = HttpContext.Current.Request.Url.AbsoluteUri;
                  int width = 850;
                  int height = 550;
                  Thumbnail1 thumbnail = new Thumbnail1(url, 990, 1000, width, height);
                  Bitmap image = thumbnail.GenerateThumbnail();
                  image.Save(Server.MapPath("~") + "/Dwnld/Thumbnail.bmp");
                  imagepath = Server.MapPath("~").ToString() + "\\Dwnld\\" + "Thumbnail.bmp";
                  imagepath1 = Server.MapPath("~").ToString() + "\\Dwnld\\" + "Thumbnail.pdf";
                  convetToPdf();
              }
              catch (Exception)
              {
  
                  throw;
              }
          }
  
  
  
      string imagepath = null;
          string imagepath1 = null;
          public void convetToPdf()
          {
              PdfDocument doc = new PdfDocument();
              System.Drawing.Size size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);
              PdfPage pdfPage = new PdfPage();
              pdfPage.Orientation = PageOrientation.Landscape;
              doc.Pages.Add(pdfPage);
              //  XSize size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4)
              XGraphics xgr = XGraphics.FromPdfPage(doc.Pages[0]);
              XImage img = XImage.FromFile(imagepath);
              xgr.DrawImage(img, 0, 0);
              doc.Save(imagepath1);
              xgr.Dispose();
              img.Dispose();
              doc.Close();
              Response.ContentType = "Application/pdf";
              //Get the physical path to the file.
              string FilePath = imagepath1;
              //Write the file directly to the HTTP content output stream.
              Response.WriteFile(FilePath);
              Response.End();
          }
          public class Thumbnail1
          {
              public string Url { get; set; }
              public Bitmap ThumbnailImage { get; set; }
              public int Width { get; set; }
              public int Height { get; set; }
              public int BrowserWidth { get; set; }
              public int BrowserHeight { get; set; }
  
              public Thumbnail1(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)
              {
                  this.Url = Url;
                  this.BrowserWidth = BrowserWidth;
                  this.BrowserHeight = BrowserHeight;
                  this.Height = ThumbnailHeight;
                  this.Width = ThumbnailWidth;
              }
              public Bitmap GenerateThumbnail()
              {
                  Thread thread = new Thread(new ThreadStart(GenerateThumbnailInteral));
                  thread.SetApartmentState(ApartmentState.STA);
                  thread.Start();
                  thread.Join();
                  return ThumbnailImage;
              }
              private void GenerateThumbnailInteral()
              {
                  WebBrowser webBrowser = new WebBrowser();
                  webBrowser.ScrollBarsEnabled = false;
                  webBrowser.Navigate(this.Url);
                  webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
                  while (webBrowser.ReadyState != WebBrowserReadyState.Complete) System.Windows.Forms.Application.DoEvents();
                  webBrowser.Dispose();
              }
              private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
              {
                  WebBrowser webBrowser = (WebBrowser)sender;
                  webBrowser.ClientSize = new Size(this.BrowserWidth, this.BrowserHeight);
                  webBrowser.ScrollBarsEnabled = false;
                  this.ThumbnailImage = new Bitmap(webBrowser.Bounds.Width, webBrowser.Bounds.Height);
                  webBrowser.BringToFront();
                  webBrowser.DrawToBitmap(ThumbnailImage, webBrowser.Bounds);
                  this.ThumbnailImage = (Bitmap)ThumbnailImage.GetThumbnailImage(Width, Height, null, IntPtr.Zero);
              }
          }
          protected void CreateThumbnailImage(object sender, EventArgs e)
          {
  
          }
  </code></pre>