vs2010 asp.net winForm Html表格数据模板转换pdf文件,用到itextsharp5.4.0

VS2010

vs2010 asp.net winForm Html表格数据模板转换pdf文件,用到itextsharp5.4.0_第1张图片

using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml.pipeline;
using HtmlTable2pdf;


    string fileName = string.Empty;

            dlg.FileName = "创建Pdf";
            dlg.DefaultExt = ".pdf";
            dlg.Filter = "Text documents (.pdf)|*.pdf";

            string strtb = "";

            strtb = @"

                          
                         
                         
userObject.companyName 这是页眉第X页

                         
                         

                         

                         
                         

                         

                         
                         

                         

                         

                         
                         
                         

                         

                         
                         
                         
order.customerName'时间:'+(order.billDate).ToString('yyyy年MM月dd日')'单号:'+order.number'时间:'+userObject.getRMBs('123.45')
页头:类别价格数量金额仓库单位
orderDetail.name+' '+orderDetail.specorderDetail.priceuserObject.getRMB(2345.789866)(orderDetail.quantity*orderDetail.price).ToString('F2')orderDetail.unitName'金额 :'+userObject.getRMB(orderDetail.amount)
这是页尾(#2016-02-05#).ToString('yyyy年MM月dd日')userObject.companyName
小计'吨数量:'+(orderDetail.count(orderDetail.iif(unitName ='吨',1,0))+orderDetail.count(billID)+orderDetail.sum(amount))'吨'+(orderDetail.sum(amount)).ToString('F2')orderDetail.unitNamebackground-color
这是表尾userObject.DateTimeToString('2016-02-05','yyyy年MM月dd日')userObject.ToLower('AbcDG')
总计'吨数量 :'+(orderDetail.count(orderDetail.iif(unitName ='吨',1,0))+orderDetail.count(billID)+orderDetail.sum(amount))'金额 :'+userObject.getRMB(orderDetail.sum(amount))

                          
                         
                         
userObject.companyName 第X页 共Y页
";


            //明细td不支持嵌套


            //只明细td可以code=[]


            DataTable _dtOrder = GenerateOrder();//DBUtility.DbHelperSQL.GetDataSet(sql);
            DataTable _dtOrderDetail = GenerateOrderDetail();// DBUtility.DbHelperSQL.GetDataSet(String.Format("Select * From V_saledetails  where billid='{0}'", _dtOrder.Rows[0]["id"].ToString()));


            //if (_dtOrderDetail.Columns["quantity"].DataType == typeof(string))
            {


                 DataTable eval = new DataTable();


            }


            //FromattedHtmlParser fmp = new FromattedHtmlParser(strtb);
            Html2pdfWorker fmp = new Html2pdfWorker();
            fmp.HtmlTable = strtb;
            fmp.AddTable(_dtOrder, "Order");
            fmp.AddTable(_dtOrderDetail, "orderDetail");


            fmp.DetailTableName = "orderdetail";
            //明细表名称


            自定义变量
            fmp.userObject.companyName = "公司A";
            自定义函数
            fmp.userObject.ToLower = new Func(ToLower);


            fmp.Prase();


            if (dlg.ShowDialog() == DialogResult.OK)
            {
                fileName = dlg.FileName;


                fmp.SaveToPdf(fileName);


            }




        }


        public string ToLower(string str)
        {
            return str.ToLower();
        }


        private DataTable GenerateOrder()
        {
            //DataTable dt = new DataTable("Order");
            DataTable dt = new DataTable();
            dt.Columns.Add("billID", typeof(int));
            dt.Columns.Add("customerName");
            dt.Columns.Add("billDate", typeof(DateTime));
            dt.Columns.Add("number");
            dt.Columns.Add("flag");
            DataRow row = null;
            String[] types = new string[] { "用户1", "用户2", "用户3", "用户4", "用户5" };
            DateTime getDate = DateTime.Now;
            DateTime backDate = DateTime.Now;
            for (int i = 0; i < 10; i++)
            {
                row = dt.NewRow();
                row["billID"] = i + 1;
                row["customerName"] = types[(i * 3) % 5];
                row["billDate"] = getDate.AddDays(i);//.ToString("yyyy-MM-dd");
                row["number"] = "XS20160616";
                row["flag"] = true;
                dt.Rows.Add(row);
            }
            return dt;
        }




        private DataTable GenerateOrderDetail()
        {
            double price, quantity;
            //DataTable dt = new DataTable("orderDetail");
            DataTable dt = new DataTable();
            Random random = new Random();
            String[] types = new string[] { "吨", "公斤" };
            dt.Columns.Add("billID", typeof(int));
            dt.Columns.Add("quantity", typeof(int));
            dt.Columns.Add("name");
            dt.Columns.Add("spec");
            dt.Columns.Add("unitName");
            dt.Columns.Add("storageName");
            dt.Columns.Add("price", typeof(double));
            dt.Columns.Add("amount", typeof(double));
            dt.Columns.Add("taxRate", typeof(int));
            DataRow row = null;




            for (int i = 0; i < 5; i++)
            {
                row = dt.NewRow();
                row["billID"] = random.Next(10);
                row["unitName"] = types[(i * 3) % 2];
                row["name"] = "品名A";
                row["spec"] = "规格A";
                row["storageName"] = "仓库A";
                price = random.NextDouble() * 120;
                quantity = random.Next(20, 30);
                row["quantity"] = quantity;
                row["price"] = price;
                row["amount"] = price * quantity;
                row["taxRate"] = 17;
                dt.Rows.Add(row);
            }
            return dt;

        }


http://218.95.37.10:8085/Html2pdf.rar

你可能感兴趣的:(Html表格模板转换pdf文件,VS2010)