title: Generate PDF in using windows form
body: <p>I want to generate a PDF using windows form in the desktop application. I have readymade pdf design and I just want to feed data from database in that blank section of pdf for each user. (One type of receipt). Please guide me. I have searched but most of the time there is the solution in asp.net for the web application. I want to do in the desktop app. Here is my code I am able to fatch data from database and print in pdf. But main problem is trhat I have already designed pdf and I want to place data exactly at same field (ie name, Amount, date etc.)</p>
  
  <pre><code>using System;
  using System.Windows.Forms;
  using System.Diagnostics;
  using PdfSharp;
  using PdfSharp.Drawing;
  using PdfSharp.Pdf;
  using System.Data.SqlClient;
  using System.Data;
  using System.Configuration;
  
  
  namespace printPDF
  {
      public partial class Form1 : Form
      {
          public Form1()
          {
              InitializeComponent();
          }
  
          private void button1_Click_1(object sender, EventArgs e)
          {
              try
              {
                  string connetionString = null;
                  SqlConnection connection ;
                  SqlCommand command ;
                  SqlDataAdapter adapter = new SqlDataAdapter();
                  DataSet ds = new DataSet();
                  int i = 0;
                  string sql = null;
                  int yPoint = 0;
                  string pubname = null;
                  string city = null;
                  string state = null;
  
                  connetionString = "Data Source=EEVO-SALMAN\\MY_PC;Initial Catalog=;User ID=s***;Password=******";
                //  var connectionString = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString;
                  sql = "select NAME,NAME,uid from tblumaster";
                  connection = new SqlConnection(connetionString);
                  connection.Open();
                  command = new SqlCommand(sql, connection);
                  adapter.SelectCommand = command;
                  adapter.Fill(ds);
                  connection.Close();
  
                  PdfDocument pdf = new PdfDocument();
                  pdf.Info.Title = "Database to PDF";
                  PdfPage pdfPage = pdf.AddPage();
                  XGraphics graph = XGraphics.FromPdfPage(pdfPage);
                  XFont font = new XFont("Verdana", 20, XFontStyle.Regular );
  
                  yPoint = yPoint + 100;
  
                  for (i = 0; i &lt;=ds.Tables[0].Rows.Count-1; i++)
                  {
                      pubname = ds.Tables[0].Rows[i].ItemArray[0].ToString ();
                      city = ds.Tables[0].Rows[i].ItemArray[1].ToString();
                      state = ds.Tables[0].Rows[i].ItemArray[2].ToString();
  
                      graph.DrawString(pubname, font, XBrushes.Black, new XRect(10, yPoint, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
  
                      graph.DrawString(city, font, XBrushes.Black, new XRect(200, yPoint, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
  
                      graph.DrawString(state, font, XBrushes.Black, new XRect(400, yPoint, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
  
                      yPoint = yPoint + 40;
                  }
  
  
                  string pdfFilename = "dbtopdf.pdf";
                  pdf.Save(pdfFilename);
                  Process.Start(pdfFilename);
              }
              catch (Exception ex)
              {
                  MessageBox.Show(ex.ToString());
              }
          }
      }
  }
  </code></pre>