• Apose 套打


    给web添加一个dll引用:Apose.Words

             下载链接:http://yunpan.cn/cA7v6uceM6KVw  提取码 11df

    在Global.asax里面的Application_Start方法添加:

                License lic = new License();
                string licPath = HttpContext.Current.Server.MapPath("/Plugs/Aspose.Words.lic");
                lic.SetLicense(licPath);

    添加完成后,会报错,把里面的应用换成

    using Aspose.Words;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.SessionState;

    在Web下面添加一个文件夹Plugs,里面有两个文件:

    http://yunpan.cn/cfQ6H5VJ7w8DC  提取码 ef95

    设置一个按钮:

    <input type="button" name="button" id="Report" value="批量打印" />

    给按钮绑定事件:

     $("#Report").click(function () {
           window.open("../../Apose/StudentInfo.aspx?studentType=" + $("#selStudentType").val() + "&schoolCode=" + $("#selSchool").val() + "&district=" + $("#selDistrict").val());
     });
    StudentInfo.aspx 页面就是导出的页面了,后台代码:
            protected void Page_Load(object sender, EventArgs e)
            {
                string schoolCode = Request.QueryString["schoolCode"].ToString();
                string studentType = Request.QueryString["studentType"].ToString();
                string district = Request.QueryString["district"].ToString();
                print(schoolCode, studentType, district);
            }
    
    
            DataTable getDs(string schoolCode, string studentType, string district)
            {
                string strWhere = " 1=1";
                if (!string.IsNullOrEmpty(studentType))
                {
                    strWhere += " and TypeCode='" + studentType + "'";
                    Session["TypeCode"] = studentType;
                }
                if (!string.IsNullOrEmpty(schoolCode))
                {
                    strWhere += " and PrimarySchoolCode ='" + schoolCode + "'";
    
                }
                if (!string.IsNullOrEmpty(district))
                {
                    strWhere += " and DistrictCode='" + district + "'";
                }
                DataTable dt = new BLL.ObjMethod().GetList("View_CryStudent", strWhere);
                return dt;
            }
    
            protected void print(string schoolCode, string studentType, string district)
            {
                Document doc = new Document();
                DocumentBuilder docBuilder = new DocumentBuilder(doc);
    
                Document src = null;
    
                var dt = getDs(schoolCode, studentType, district);
                int count = dt.Rows.Count;
                show.Text = "预备打印学生数量为:"+count;
                DataRow dr;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dr = dt.Rows[i];
                    if (dr["TypeCode"].ToString() == "10000")
                    {
                        src = new Document(Server.MapPath("/files/1.doc"));
                    }
                    if (dr["TypeCode"].ToString() == "10001")
                    {
                        src = new Document(Server.MapPath("/files/10.doc"));
                    }
                    src.Range.Replace("<Ф1Ф>", dr["Name"].ToString(), false, false);
                    src.Range.Replace("<Ф2Ф>", dr["SexCode"].ToString(), false, false);
                    src.Range.Replace("<Ф3Ф>", dr["Birthday2"].ToString(), false, false);
                    src.Range.Replace("<Ф4Ф>", dr["Nation"].ToString(), false, false);
                    src.Range.Replace("<Ф5Ф>", dr["EduId"].ToString(), false, false);
                    src.Range.Replace("<Ф6Ф>", dr["RollId"].ToString(), false, false);
                    src.Range.Replace("<Ф7Ф>", dr["CardID"].ToString(), false, false);
                    src.Range.Replace("<Ф8Ф>", dr["HuKouName"].ToString() + dr["HukouAddress"].ToString(), false, false);
                    src.Range.Replace("<Ф9Ф>", dr["HuZhuName"].ToString(), false, false);
                    src.Range.Replace("<Ф10Ф>", dr["HuZhuRelationName"].ToString(), false, false);
                    src.Range.Replace("<Ф11Ф>", dr["IsAllFamilyIn"].ToString(), false, false);
                    string relation = dr["IsAllFamilyIn"].ToString();
                    if (relation == "父户口同在")
                    {
                        src.Range.Replace("<Ф12Ф>", dr["Father"].ToString(), false, false);
                    }
                    else if (relation == "母户口同在")
                    {
                        src.Range.Replace("<Ф12Ф>", dr["Mother"].ToString(), false, false);
                    }
                    else if (relation == "父母户口同在")
                    {
                        src.Range.Replace("<Ф12Ф>", dr["Father"].ToString() + "," + dr["Mother"].ToString(), false, false);
                    }
                    else {
                        src.Range.Replace("<Ф12Ф>","", false, false);
                    }
                   
                    src.Range.Replace("<Ф13Ф>", dr["HouseQuXianAddressName"].ToString() + dr["HouseAddress"].ToString(), false, false);
                    src.Range.Replace("<Ф14Ф>", dr["HouseOwnerName"].ToString(), false, false);
                    src.Range.Replace("<Ф15Ф>", dr["HouseOwnerRelationName"].ToString(), false, false);
                    src.Range.Replace("<Ф16Ф>", dr["HouseOwnerCardID"].ToString(), false, false);
                    src.Range.Replace("<Ф17Ф>", dr["Tenantry"].ToString(), false, false);
                    src.Range.Replace("<Ф18Ф>", dr["GuardianName1"].ToString(), false, false);
                    src.Range.Replace("<Ф19Ф>", dr["GuardianRelationName1"].ToString(), false, false);
                    src.Range.Replace("<Ф20Ф>", dr["GuardianZhengZhi1"].ToString(), false, false);
                    src.Range.Replace("<Ф21Ф>", dr["GuardianEduCode1"].ToString(), false, false);
                    src.Range.Replace("<Ф22Ф>", dr["GuardianCompany1"].ToString(), false, false);
                    src.Range.Replace("<Ф23Ф>", dr["GuardianTelephone1"].ToString(), false, false);
                    src.Range.Replace("<Ф24Ф>", dr["GuardianName2"].ToString(), false, false);
                    src.Range.Replace("<Ф25Ф>", dr["GuardianRelationName2"].ToString(), false, false);
                    src.Range.Replace("<Ф26Ф>", dr["GuardianZhengZhi2"].ToString(), false, false);
                    src.Range.Replace("<Ф27Ф>", dr["GuardianEduCode2"].ToString(), false, false);
                    src.Range.Replace("<Ф28Ф>", dr["GuardianCompany2"].ToString(), false, false);
                
                    src.Range.Replace("<Ф29Ф>", dr["GuardianTelephone2"].ToString(), false, false);
                    src.Range.Replace("<Ф30Ф>", dr["xh"].ToString(), false, false);
                    src.Range.Replace("<Ф31Ф>", dr["Name"].ToString(), false, false);
                    src.Range.Replace("<Ф32Ф>", dr["TiJiaoNumber"].ToString(), false, false);
                    src.Range.Replace("<Ф33Ф>", dr["PrimarySchoolName"].ToString(), false, false);
    
                    if (dr["TypeCode"].ToString() == "10001")
                    {
                        src.Range.Replace("<Ф34Ф>", dr["JieDuTypeName"].ToString(), false, false);
                    }
    
                    InsertDocument(doc.LastSection.Body.LastParagraph, src);
                    docBuilder.MoveToDocumentEnd();
                    docBuilder.InsertBreak(BreakType.PageBreak);
                    jindu.Text = "已经准备学生数量:"+(i+1);
                }
               // string path = "/files/" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf";
                string path = "/files/" + "啊啊啊" + ".pdf";
                doc.Save(Server.MapPath(path), SaveFormat.Pdf);
                download(path);
                msg.InnerHtml = "<a href=""+ path +"">如果您没有正常打开文件,请点击这里</a>";
                
            }
    
            /// <summary>
            /// Inserts content of the external document after the specified node.
            /// Section breaks and section formatting of the inserted document are ignored.
            /// </summary>
            /// <param name="insertAfterNode">Node in the destination document after which the content
            /// should be inserted. This node should be a block level node (paragraph or table).</param>
            /// <param name="srcDoc">The document to insert.</param>
            static void InsertDocument(Node insertAfterNode, Document srcDoc)
            {
                // Make sure that the node is either a paragraph or table.
                if ((!insertAfterNode.NodeType.Equals(NodeType.Paragraph)) &
                  (!insertAfterNode.NodeType.Equals(NodeType.Table)))
                    throw new ArgumentException("The destination node should be either a paragraph or table.");
    
                // We will be inserting into the parent of the destination paragraph.
                CompositeNode dstStory = insertAfterNode.ParentNode;
    
                // This object will be translating styles and lists during the import.
                NodeImporter importer = new NodeImporter(srcDoc, insertAfterNode.Document, ImportFormatMode.KeepSourceFormatting);
    
                // Loop through all sections in the source document.
                foreach (Section srcSection in srcDoc.Sections)
                {
                    // Loop through all block level nodes (paragraphs and tables) in the body of the section.
                    foreach (Node srcNode in srcSection.Body)
                    {
                        // Let's skip the node if it is a last empty paragraph in a section.
                        if (srcNode.NodeType.Equals(NodeType.Paragraph))
                        {
                            Paragraph para = (Paragraph)srcNode;
                            if (para.IsEndOfSection && !para.HasChildNodes)
                                continue;
                        }
    
                        // This creates a clone of the node, suitable for insertion into the destination document.
                        Node newNode = importer.ImportNode(srcNode, true);
    
                        // Insert new node after the reference node.
                        dstStory.InsertAfter(newNode, insertAfterNode);
                        insertAfterNode = newNode;
                    }
                }
            }
            private void download(string filePath)
            {
                Response.Redirect(filePath);
            }
            //private void download(string filePath)
            //{
            //    #region default value
    
            //    //查看方式,作为附件下载还是在浏览器中打开。默认为附件下载。浏览器中打开:viewType="inline";
            //    string viewType = "attachment";
    
            //    //下载完成是否删除,默认不删除。
            //    bool toDelete = false;
    
            //    //内容类型,不同文件格式的内容类型不同。
            //    string contentType = "application/pdf";
    
            //    //文件保存时的默认名称。
            //    string fileName = "print.pdf";
    
            //    //要下载的文件
            //    //string filePath = "/files/student.docx";
               
            //    #endregion
    
            //    //#region Reset value
            //    //HttpRequest httpRequest = HttpContext.Current.Request;
    
            //    //if (!string.IsNullOrEmpty(httpRequest["viewType"]))
            //    //    viewType = httpRequest["viewType"];
    
            //    //if (!string.IsNullOrEmpty(httpRequest["toDelete"]))
            //    //    toDelete = httpRequest["toDelete"].ToLower() == "true";
    
            //    //if (!string.IsNullOrEmpty(httpRequest["filePath"]))
            //    //    filePath = httpRequest["filePath"];
    
            //    //if (!string.IsNullOrEmpty(httpRequest["fileName"]))
            //    //    fileName = httpRequest["fileName"];
    
            //    //if (!string.IsNullOrEmpty(httpRequest["contentType"]))
            //    //    contentType = httpRequest["contentType"];
    
            //    //#endregion
    
            //    filePath = HttpContext.Current.Server.MapPath(filePath);
    
            //    Stream fileStream = null;
            //    bool fileExsits = File.Exists(filePath);
    
            //    if (fileExsits)
            //        fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
            //    else
            //        return;
    
            //    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            //    HttpContext.Current.Response.BufferOutput = false;
    
            //    fileName = HttpUtility.UrlEncode(fileName, Encoding.UTF8).Replace('+', ' ');
    
            //    HttpContext.Current.Response.Clear();
    
            //    HttpContext.Current.Response.AppendHeader("Content-Disposition", string.Format("{0};filename="{1}"", viewType, fileName));
            //    HttpContext.Current.Response.AddHeader("Content-Length", fileStream.Length.ToString());
            //    HttpContext.Current.Response.ContentType = contentType;
    
            //    try
            //    {
            //        long dataToRead = fileStream.Length;
            //        byte[] buffer;
            //        const int buffSize = 1024 * 16;
            //        int length = 0;
            //        while (dataToRead > 0)
            //        {
            //            if (HttpContext.Current.Response.IsClientConnected)
            //            {
            //                buffer = new Byte[buffSize];
            //                length = fileStream.Read(buffer, 0, buffSize);
            //                HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
            //                dataToRead = dataToRead - length;
            //            }
            //            else
            //            {
            //                dataToRead = -1;
            //            }
            //        }
            //    }
            //    finally
            //    {
            //        fileStream.Close();
            //        fileStream.Dispose();
            //        if (toDelete)
            //        {
            //            //new FileInfo(filePath).Attributes = FileAttributes.Normal;
            //            File.Delete(filePath);
            //        }
            //    }
    
            //    HttpContext.Current.Response.End();
            //}

    word截图:

                   

  • 相关阅读:
    DataPager 分页样式(css)
    Mysql日志详解
    Oracle 优化器
    [oracle]对象统计数据
    [oracle] analyze 和dbms_stats 的区别
    增加SAP HEAP大小
    Problems with SYSDBA/SYSOPER/INTERNAL connect
    Physical Standby Switchover_status Showing Not Allowed
    REHL8 oracle 19C RAC安装中的坑
    REHL8 oracle 19C RAC安装四(数据库创建)
  • 原文地址:https://www.cnblogs.com/xiaoqi742709106/p/4140055.html
Copyright © 2020-2023  润新知