我想从数据库值生成pdf文件 [英] i want to generate pdf file from database value

查看:284
本文介绍了我想从数据库值生成pdf文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好

我想从ASP.Net和c#中的数据库中获取数据来创建PDF文件,我也想在pdf文件中格式化数据。并且还希望通过一些pdf查看器控件将生成的pdf显示到网页。

提前感谢。

有一个美好的一天。

Hi
I Want To Create A PDF File From Data Fetch From The Database in ASP.Net and c#, i also would like to have formating data in pdf file. and also want to show the generated pdf to web page by some pdf viewer control.
thanks in advance.
have a nice day.

推荐答案

您可以使用itextsharp来达到此目的。看看这个:

使用iTextSharp创建PDF文档 [ ^ ]
you can use itextsharp for this purpose. have a look at this:
Creating PDF documents with iTextSharp[^]


http://amin-sayed.blogspot.in/2008/10/in-this-article-ill-demonstrate-how-to.html [ ^ ]

< a href =http://www.aspdotnet-suresh.com/2011/04/how-to-export-gridview-data-to-pdf.html> http://www.aspdotnet-suresh.com/2011 /04/how-to-export-gridview-data-to-pdf.html [ ^ ]


你可以数据通过以下代码将表数据转换为PDF并设置PDF格式:

You can datatable data to PDF and set PDF format by try below code:
//Set table title
   PdfBrush brush1 = PdfBrushes.Black;
   PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", 16f, FontStyle.Bold));
   PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Center);
   page.Canvas.DrawString("Country List", font1, brush1, page.Canvas.ClientSize.Width / 2, y, format1);
   y = y + font1.MeasureString("Country List", format1).Height;
   y = y + 5;
   //create data table
   PdfTable table = new PdfTable();
   table.Style.CellPadding = 2;
   table.Style.BorderPen = new PdfPen(brush1, 0.75f);
   table.Style.DefaultStyle.BackgroundBrush = PdfBrushes.SkyBlue;
   table.Style.DefaultStyle.Font = new PdfTrueTypeFont(new Font("Arial", 10f));
   table.Style.AlternateStyle = new PdfCellStyle();
   table.Style.AlternateStyle.BackgroundBrush = PdfBrushes.LightYellow;
   table.Style.AlternateStyle.Font = new PdfTrueTypeFont(new Font("Arial", 10f));
   table.Style.HeaderSource = PdfHeaderSource.ColumnCaptions;
   table.Style.HeaderStyle.BackgroundBrush = PdfBrushes.CadetBlue;
   table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("Arial", 11f, FontStyle.Bold));
   table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center);
   table.Style.ShowHeader = true;
   using (OleDbConnection conn = new OleDbConnection())
        {
            conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=demo.mdb";
            OleDbCommand command = new OleDbCommand();
            command.CommandText
                = " select Name, " as Flag, Capital, Continent, Area, Population, Flag as FlagData from country ";
            command.Connection = conn;
            using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(command))
            {
                DataTable dataTable = new DataTable();
                dataAdapter.Fill(dataTable);
                dataTable.Columns.Add(new DataColumn("FlagImage", typeof(PdfImage)));
                table.DataSourceType = PdfTableDataSourceType.TableDirect;
                table.DataSource = dataTable;
            }
        }
  float width
            = page.Canvas.ClientSize.Width
                – (table.Columns.Count + 1) * table.Style.BorderPen.Width;
        table.Columns[0].Width = width * 0.21f;
        table.Columns[0].StringFormat
            = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
        table.Columns[1].Width = width * 0.10f;
        table.Columns[1].StringFormat
            = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
        table.Columns[2].Width = width * 0.19f;
        table.Columns[2].StringFormat
            = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
        table.Columns[3].Width = width * 0.21f;
        table.Columns[3].StringFormat
            = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
        table.Columns[4].Width = width * 0.12f;
        table.Columns[4].StringFormat
            = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle);
        table.Columns[5].Width = width * 0.17f;
        table.Columns[5].StringFormat
            = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle);
        table.BeginRowLayout += new BeginRowLayoutEventHandler(table_BeginRowLayout);
        table.EndCellLayout += new EndCellLayoutEventHandler(table_EndCellLayout);
        PdfTableLayoutFormat tableLayout = new PdfTableLayoutFormat();
        tableLayout.Break = PdfLayoutBreakType.FitElement;
        tableLayout.Layout = PdfLayoutType.Paginate;
        tableLayout.EndColumnIndex = table.Columns.Count – 2 – 1;
        PdfLayoutResult result = table.Draw(page, new PointF(0, y), tableLayout);
        y = y + result.Bounds.Height + 5;
        PdfBrush brush2 = PdfBrushes.Gray;
        PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 9f));
        page.Canvas.DrawString(String.Format("* {0} countries in the list.", table.Rows.Count),
        font2, brush2, 5, y);





然后,使用PDF查看器在您的aspx页面上显示它。请注意上面的代码需要第三方PDF库但不需要Adobe Acrobat,您可以尝试一下: PDF库 [ ^ 祝你好运!


这篇关于我想从数据库值生成pdf文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆