Click here to Skip to main content
15,900,907 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
C#
using System.Drawing;  
using Spire.Pdf;  
using Spire.Pdf.Graphics;  
using Spire.Pdf.Graphics.Fonts;  
using Spire.Pdf.Tables;  
  
namespace pdftablewpf  
{  
    /// <summary>  
    /// Interaction logic for MainWindow.xaml  
    /// </summary>  
    public partial class MainWindow : Window  
    {  
        public MainWindow()  
        {  
            InitializeComponent();  
        }  
        private void button1_Click(object sender, RoutedEventArgs e)  
        {  
             //create a new PDF document  
            PdfDocument doc = new PdfDocument();  
  
            PdfUnitConvertor unitCvtr = new PdfUnitConvertor();  
            PdfMargins margin = new PdfMargins();  
            margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);  
            marginmargin.Bottom = margin.Top;  
            margin.Left = unitCvtr.ConvertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);  
            marginmargin.Right = margin.Left;  
  
            PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, margin);  
            float y = 20;  
            //add PDF title  
            PdfBrush brush1 = PdfBrushes.Black;  
            PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Verdana", 14f, System.Drawing.FontStyle.Bold));  
            PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Center);  
            page.Canvas.DrawString("Part Sales Information", font1, brush1, page.Canvas.ClientSize.Width / 2, y, format1);  
            yy = y + font1.MeasureString("Part Sales Information", format1).Height;  
            yy = y + 10;  
            //add data information  
            String[] data  
         = {  
        "PartNo;Description;OnHand;OnOrder;Cost;ListPrice",  
        "900;Dive kayak;24;16;1356.75;3999.95",  
        "912;Underwater Diver Vehicle;5;3;504;1680",  
        "1313;Regulator System;165;216;117.5;250",  
        "1314;Second Stage Regulator;98;88;124.1;365",  
        "1316;Regulator System;75;70;119.35;341",  
        "1320;Second Stage Regulator;37;35;73.53;171",  
        "1328;Regulator System;166;100;154.8;430",  
        "1330;Alternate Inflation Regulator;47;43;85.8;260",  
        "1364;Second Stage Regulator;128;135;99.9;270",  
        "1390;First Stage Regulator;146;140;64.6;170",  
        "1946;Second Stage Regulator;13;10;95.79;309",  
        "1986;Depth/Pressure Gauge Console;25;24;73.32;188",  
        "2314;Electronic Console;13;12;120.9;390",  
        "2341;Depth/Pressure Gauge;226;225;48.3;105",  
        "2343;Personal Dive Sonar;46;45;72.85;235",  
        "2350;Compass Console Mount;211;300;10.15;29"  
            };   
  
            String[][] dataSource  
                = new String[data.Length][];  
            for (int i = 0; i < data.Length; i++)  
            {  
                dataSource[i] = data[i].Split(';');  
            }  
            //Set table header  
            PdfTable table = new PdfTable();  
            table.Style.CellPadding = 3;  
            table.Style.HeaderSource = PdfHeaderSource.Rows;  
            table.Style.HeaderRowCount = 1;  
            table.DataSource = dataSource;  
            table.Style.ShowHeader = true;  
  
            table.Style.HeaderStyle.BackgroundBrush = PdfBrushes.LightSeaGreen;  
            table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("Verdana", 9f, System.Drawing.FontStyle.Bold));  
            table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center);  
            table.Style.HeaderStyle.TextBrush = PdfBrushes.White;  
  
            //Set table style and data format  
            table.Style.BorderPen = new PdfPen(PdfBrushes.LightBlue, 0.5f);  
            table.Style.DefaultStyle.BackgroundBrush = PdfBrushes.LightYellow;  
            table.Style.DefaultStyle.Font = new PdfTrueTypeFont(new Font("Verdana", 8.5f));  
            table.Style.AlternateStyle = new PdfCellStyle();  
            table.Style.AlternateStyle.BackgroundBrush = PdfBrushes.AliceBlue;  
            table.Style.AlternateStyle.Font = new PdfTrueTypeFont(new Font("Verdana", 8.5f));  
  
            float width  
                = page.Canvas.ClientSize.Width  
                - (table.Columns.Count + 1) * table.Style.BorderPen.Width;  
            table.Columns[0].Width = width * 0.1f * width;  
            table.Columns[0].StringFormat  
                = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);  
           
            table.Columns[1].Width = width * 0.28f * width;  
            table.Columns[1].StringFormat  
                = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);  
            table.Columns[2].Width = width * 0.1f * width;  
            table.Columns[2].StringFormat  
                = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);  
            table.Columns[3].Width = width * 0.1f * width;  
            table.Columns[3].StringFormat  
                = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);  
            table.Columns[4].Width = width * 0.12f * width;  
            table.Columns[4].StringFormat  
                = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);  
            table.Columns[5].Width = width * 0.12f * width;  
            table.Columns[5].StringFormat  
                = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);  
  
            PdfLayoutResult result = table.Draw(page, new PointF(0, y));  
            // save and launch the file  
            doc.SaveToFile("SimpleTable.pdf");  
            doc.Close();  
            System.Diagnostics.Process.Start("SimpleTable.pdf");  
          
        }  
    }  
}  


select data from database and store it into the string array data[].
Posted
Updated 29-Oct-12 0:36am
v3
Comments
OriginalGriff 29-Oct-12 5:47am    
This is not a good question - we cannot work out from that little what you are trying to do.
Remember that we can't see your screen, access your HDD, or read your mind.
Use the "Improve question" widget to edit your question and provide better information.

This might help you.

C#
private string[] StringArrayFun(DataTable tbl)
   {
       string[] stringArray = new string[tbl.Columns.Count];


       for (int col = 0; col < tbl.Columns.Count; ++col)
       {
           stringArray[col] = tbl.Rows[0][col].ToString();
       }


       return stringArray;
   }
 
Share this answer
 
C#
public SqlConnection connection;
string sql = "your query";
public SqlCommand command;
string connectionString = "your connection string";
DataSet dtSet = new DataSet();
    using (connection = new SqlConnection(connectionString))
    {
        command = new SqlCommand(sql, connection);              
        SqlDataAdapter adapter = new SqlDataAdapter();          
        connection.Open();
        adapter.SelectCommand = command;
        adapter.Fill(dtSet);
   } 
DataTable dt = new DataTable();
dt = dtSet.Tables[0];
      string[][] data= new string[dt.Columns.Count][];
       for (int row = 0; row < dt.Rows.Count; ++row)
       {
       for (int col = 0; col < dt.Columns.Count; ++col)
       {
           data[row][col] = dt.Rows[row][col].ToString();
       }
       }
       return data;
 
Share this answer
 
v6
Comments
Dibin Babu 29-Oct-12 6:40am    
data[row] = dt.Rows[row][col].ToString(); this shows "Cannot implicitly convert type 'string' to 'string[]' "
satz_770 29-Oct-12 8:03am    
hope now it works....
Nelek 29-Oct-12 6:41am    
I have added the tags to your code snippet, but the number of brackets seems to be incorrect. Please have a look and edit your answer with the widget "improve your solution" to correct it and give the correct tabulation, so your code can be read easily
satz_770 29-Oct-12 8:04am    
s... it had one extra closing brace.. thanks for ur feedback..
Nelek 29-Oct-12 8:09am    
You are welcome :)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900