c#asp.net表格Html数据模板转换Pdf文件web打印pdf报表dll

前台aspx

<input type="button" value="清单报表pdf" οnclick="PrintPdf('list')"/><input type="button" value="组报表pdf" οnclick="PrintPdf('group')"/>

<input type="button" value="子报表pdf" οnclick="PrintPdf('sub')"/><input type="button" value="交叉报表pdf" οnclick="PrintPdf('cross')"/>
    </p>
<p>DataTable.Compute(详见实例)/p>
<p>column.Expression(详见实例)/p>
<p>自定义函数(详见实例)/p>
<p>算术运算符,关系运算符,以及逻辑运算符(详见实例)/p>
<p>预定义函数getRMB(double num)getRMBs(string num)(详见实例)/p>
<p>一些默认的类型方法函数,如double, float, string, DateTime, Convert(详见实例)</p>
    <p><b>HtmlTable2pdf.dll</b>(@Jimuruanjian;Q729513406)</p>
    </form>
<iframe id="iPrint" style='height:0; width:0;' ></iframe>


<script type="text/javascript">

    function PrintPdf(rptype) {
        if (document.getElementById("iPrint").attachEvent) {


            document.getElementById("iPrint").attachEvent("onload", function () { document.getElementById("iPrint").focus(); document.getElementById("iPrint").contentWindow.print(); });




        } else {
            document.getElementById("iPrint").onload = function () {
                document.getElementById("iPrint").focus(); document.getElementById("iPrint").contentWindow.print();
            }
        }
        document.getElementById("iPrint").src = "./WebForm1.aspx?action=" + rptype;


    }

</script>

后台cs

        private void cross()
        {
            strtb = @"<style>td {border-bottom-width: 1px; border-bottom-style: solid;border-bottom-color: gray; border-left-width: 1px; border-left-style: solid;border-left-color: gray;} table {border-right-style: solid;border-right-color: gray;border-right-width: 1px;border-top-style: solid;border-top-color: gray;border-top-width: 1px;}</style>
                <table cellpadding='3' cellspacing='0' style='text-align:left;font-size:10.5pt;font-family: 宋体' width='300' section='页眉'> 
                <tr align='left' valign='top'><td style='border-left-width: 1px; border-left-style: solid; border-left-color: gray; background-color:#CCCC00' bgcolor='#C0C0C0' width='220'><img border='0' src='' width='60' height='60'/>userObject.companyName</td>
                <td width='220' class='td2'>这是页眉</td><td section='页码' style='float:left' width='390'>第X页 共Y页</td></tr></table>
                <table pageSize='A5' id='table2' pageDirection='verticle' pageMargin='10,20,160,10' width='900' cellspacing='0' cellpadding='0'>
                <section id='表头'>
                <tr><td>order.customerName</td><td colspan='code=[userObject.crossNum]'>userObject.ToLower('AbcDG')</td></tr>
                </section>
                <section id='页头'>
                <tr><td colspan='code=[userObject.crossNum + 1]'>order.customerName</td></tr>
                <tr><td>仓库\重量单位</td><td cross='1'>dtTypes.unitName</td></tr>
                </section>
                <section id='明细'>
                <tr><td>dtStorage.storageName</td><td cross='1'>orderDetail.sum(orderDetail.iif(unitName=dtTypes.unitName and storageName=dtStorage.storageName,quantity,0))+dtTypes.unitName+dtStorage.storageName</td></tr>
                </section>
                </table>
                <table cellpadding='3' cellspacing='0' style='text-align:left;font-size:10.5pt;font-family: 宋体' width='800' section='页脚'> 
                <tr align='left' valign='top'><td style='border-left-width: 1px; border-left-style: solid; border-left-color: gray' bgcolor='#C0C0C0' width='220'>userObject.companyName</td>
                <td width='220'></td><td section='页码' style='border-bottom-width: 1px; border-bottom-style: solid;background-color:#00ff00; border-bottom-color: gray; float:left' width='390'>第X页 共Y页</td></tr></table>";


            /**/
            //交叉报表


            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()));


            DataTable _dtStorage = GenerateStorage();// DBUtility.DbHelperSQL.GetDataSet(String.Format("Select * From V_saledetails  where billid='{0}'", _dtOrder.Rows[0]["id"].ToString()));
            DataTable _dtTypes = GenerateTypes();// DBUtility.DbHelperSQL.GetDataSet(String.Format("Select * From V_saledetails  where billid='{0}'", _dtOrder.Rows[0]["id"].ToString()));


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


            fmp.AddTable(_dtStorage, "dtStorage");
            fmp.AddTable(_dtTypes, "dtTypes");


            fmp.DetailTableName = "orderdetail";
            fmp.VerticalTableName = "dtStorage";
            fmp.HorizontalTableName = "dtTypes";


            fmp.userObject.companyName = "公司A";
            自定义函数
            fmp.userObject.ToLower = new Func<string, string>(ToLower);


            fmp.Prase();
            byte[] buff = fmp.SaveToPdf();
            Response.ContentType = "application/pdf";
            Response.BinaryWrite(buff);
        }


vs2010 asp.net  

实例下载地址:http://218.95.37.10:8091/Html2pdf.rar


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值