asp.net – 如何使用iTextSharp打印网格视图
发布时间:2020-12-16 07:04:41 所属栏目:asp.Net 来源:网络整理
导读:如何在asp.net中使用iTextSharp打印GridView数据(全部)?我只需要一个提示而不是完整的代码 解决方法 试试这个: protected void ExportToPDF(GridView gvReport,bool LandScape){ int noOfColumns = 0,noOfRows = 0; DataTable tbl = null; if (gvReport.Au
如何在asp.net中使用iTextSharp打印GridView数据(全部)?我只需要一个提示而不是完整的代码
解决方法
试试这个:
protected void ExportToPDF(GridView gvReport,bool LandScape) { int noOfColumns = 0,noOfRows = 0; DataTable tbl = null; if (gvReport.AutoGenerateColumns) { tbl = gvReport.DataSource as DataTable; // Gets the DataSource of the GridView Control. noOfColumns = tbl.Columns.Count; noOfRows = tbl.Rows.Count; } else { noOfColumns = gvReport.Columns.Count; noOfRows = gvReport.Rows.Count; } float HeaderTextSize = 8; float ReportNameSize = 10; float ReportTextSize = 8; float ApplicationNameSize = 7; // Creates a PDF document Document document = null; if (LandScape == true) { // Sets the document to A4 size and rotates it so that the orientation of the page is Landscape. document = new Document(PageSize.A4.Rotate(),15,5); } else { document = new Document(PageSize.A4,5); } // Creates a PdfPTable with column count of the table equal to no of columns of the gridview or gridview datasource. iTextSharp.text.pdf.PdfPTable mainTable = new iTextSharp.text.pdf.PdfPTable(noOfColumns); // Sets the first 4 rows of the table as the header rows which will be repeated in all the pages. mainTable.HeaderRows = 4; // Creates a PdfPTable with 2 columns to hold the header in the exported PDF. iTextSharp.text.pdf.PdfPTable headerTable = new iTextSharp.text.pdf.PdfPTable(2); // Creates a phrase to hold the application name at the left hand side of the header. Phrase phApplicationName = new Phrase("Sample Application",FontFactory.GetFont("Arial",ApplicationNameSize,iTextSharp.text.Font.NORMAL)); // Creates a PdfPCell which accepts a phrase as a parameter. PdfPCell clApplicationName = new PdfPCell(phApplicationName); // Sets the border of the cell to zero. clApplicationName.Border = PdfPCell.NO_BORDER; // Sets the Horizontal Alignment of the PdfPCell to left. clApplicationName.HorizontalAlignment = Element.ALIGN_LEFT; // Creates a phrase to show the current date at the right hand side of the header. Phrase phDate = new Phrase(DateTime.Now.Date.ToString("dd/MM/yyyy"),iTextSharp.text.Font.NORMAL)); // Creates a PdfPCell which accepts the date phrase as a parameter. PdfPCell clDate = new PdfPCell(phDate); // Sets the Horizontal Alignment of the PdfPCell to right. clDate.HorizontalAlignment = Element.ALIGN_RIGHT; // Sets the border of the cell to zero. clDate.Border = PdfPCell.NO_BORDER; // Adds the cell which holds the application name to the headerTable. headerTable.AddCell(clApplicationName); // Adds the cell which holds the date to the headerTable. headerTable.AddCell(clDate); // Sets the border of the headerTable to zero. headerTable.DefaultCell.Border = PdfPCell.NO_BORDER; // Creates a PdfPCell that accepts the headerTable as a parameter and then adds that cell to the main PdfPTable. PdfPCell cellHeader = new PdfPCell(headerTable); cellHeader.Border = PdfPCell.NO_BORDER; // Sets the column span of the header cell to noOfColumns. cellHeader.Colspan = noOfColumns; // Adds the above header cell to the table. mainTable.AddCell(cellHeader); // Creates a phrase which holds the file name. Phrase phHeader = new Phrase("Sample Export",ReportNameSize,iTextSharp.text.Font.BOLD)); PdfPCell clHeader = new PdfPCell(phHeader); clHeader.Colspan = noOfColumns; clHeader.Border = PdfPCell.NO_BORDER; clHeader.HorizontalAlignment = Element.ALIGN_CENTER; mainTable.AddCell(clHeader); // Creates a phrase for a new line. Phrase phSpace = new Phrase("n"); PdfPCell clSpace = new PdfPCell(phSpace); clSpace.Border = PdfPCell.NO_BORDER; clSpace.Colspan = noOfColumns; mainTable.AddCell(clSpace); // Sets the gridview column names as table headers. for (int i = 0; i < noOfColumns; i++) { Phrase ph = null; if (gvReport.AutoGenerateColumns) { ph = new Phrase(tbl.Columns[i].ColumnName,HeaderTextSize,iTextSharp.text.Font.BOLD)); } else { ph = new Phrase(gvReport.Columns[i].HeaderText,iTextSharp.text.Font.BOLD)); } mainTable.AddCell(ph); } // Reads the gridview rows and adds them to the mainTable for (int rowNo = 0; rowNo < noOfRows; rowNo++) { for (int columnNo = 0; columnNo < noOfColumns; columnNo++) { if (gvReport.AutoGenerateColumns) { string s = gvReport.Rows[rowNo].Cells[columnNo].Text.Trim(); Phrase ph = new Phrase(s,ReportTextSize,iTextSharp.text.Font.NORMAL)); mainTable.AddCell(ph); } else { if (gvReport.Columns[columnNo] is TemplateField) { DataBoundLiteralControl lc = gvReport.Rows[rowNo].Cells[columnNo].Controls[0] as DataBoundLiteralControl; string s = lc.Text.Trim(); Phrase ph = new Phrase(s,iTextSharp.text.Font.NORMAL)); mainTable.AddCell(ph); } else { string s = gvReport.Rows[rowNo].Cells[columnNo].Text.Trim(); Phrase ph = new Phrase(s,iTextSharp.text.Font.NORMAL)); mainTable.AddCell(ph); } } } // Tells the mainTable to complete the row even if any cell is left incomplete. mainTable.CompleteRow(); } // Gets the instance of the document created and writes it to the output stream of the Response object. PdfWriter.GetInstance(document,Response.OutputStream); // Creates a footer for the PDF document. HeaderFooter pdfFooter = new HeaderFooter(new Phrase(),true); pdfFooter.Alignment = Element.ALIGN_CENTER; pdfFooter.Border = iTextSharp.text.Rectangle.NO_BORDER; // Sets the document footer to pdfFooter. document.Footer = pdfFooter; // Opens the document. document.Open(); // Adds the mainTable to the document. document.Add(mainTable); // Closes the document. document.Close(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition","attachment; filename= SampleExport.pdf"); Response.End(); } 从here开始 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用Oauth令牌获取Google分析数据?
- asp.net – 在jQuery中捕获异常
- asp.net – 在哪里可以为Delphi Prism定义条件编译常量?
- asp.net-mvc – mvc创建我自己的html帮助器,如何访问httpco
- asp.net-mvc – 如何在每个页面的第一次打击时提高ASP.Net
- asp.net – 将machineKey添加到machine.config
- asp.net-mvc-3 – 使用带有布尔值的Html.RadioButtonFor不写
- asp.net-mvc-4 – 尽管设置了配置值,但超出了最大请求长度
- asp.net mvc jquery ui datepicker绑定问题
- ASP.NET MVC4中@model使用多个类型实例的方法
推荐文章
站长推荐
- asp.net-mvc – OAuth 2 Google API刷新令牌为空
- asp.net-mvc-3 – EntityType’x’没有定义键.定
- asp.net-mvc – IIS8中最佳的“动态IP限制设置”
- WeihanLi.Npoi 支持 ShadowProperty 了
- asp.net-mvc – 适用于asp.net MVC和razor视图的
- ASP.NET Core 2.0 Identity中的Cookies.Applicat
- asp.net-mvc – 使用mvc-mini-profiler
- 如何合理地构建我的ASP.NET MVC 2项目与区域
- Azure Event Hub 技术研究系列2-发送事件到Event
- asp.net – .Net System.Mail.Message添加多个“
热点阅读