【问题标题】:Export Datalist to PDF with restricted rows per Page将 Datalist 导出为 PDF,每页的行数受限
【发布时间】:2013-11-22 10:45:35
【问题描述】:

我正在尝试将 SqlData 导出为 pdf,为此我正在尝试获取数据列表以打印预览。我已按照此示例进行操作。http://www.aspdotnet-suresh.com/2011/04/how-to-export-gridview-data-to-pdf.html 这里显示了网格视图数据。但我已经做了一些修改并试图在 DataList 上获取数据。现在一切正常,我可以打印 DataList 的预览。只有一个问题,我想限制每页显示的数据数量。就像我只想限制每页 10Row pdf.任何人都知道如何实现这样的功能?

简而言之,我需要在导出的 pdf 上使用分页功能,here 是我目前正在获取的 pdf

对不起,如果我的问题太简单了,但我是 Asp.Net 的新手

谢谢

【问题讨论】:

  • 你将如何确定要在页面上显示的记录或数据,也就是说你将如何设置每页显示的记录数?
  • 我的数据库上有唯一的 id,基于我正在确定的唯一 id
  • 亲爱的,这将取决于您如何显示数据。您能否附上带有数据的 pdf,以便我可以更准确地回答。
  • @raman 嗨!请检查更新的问题,我已经放了 pdf url

标签: c# asp.net pdf


【解决方案1】:

该链接上显示的方法有点简单,但您可以修改它以解决您的问题。下面是一段代码:

using System.Diagnostics;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace RowsCountSample
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var pdfDoc = new Document(PageSize.A4))
            {
                var pdfWriter = PdfWriter.GetInstance(pdfDoc, new FileStream("Test.pdf", FileMode.Create));
                pdfDoc.Open();

                var table1 = new PdfPTable(3);
                table1.HeaderRows = 2;
                table1.FooterRows = 1;

                //header row 
                var headerCell = new PdfPCell(new Phrase("header"));
                headerCell.Colspan = 3;
                headerCell.HorizontalAlignment = Element.ALIGN_CENTER;
                table1.AddCell(headerCell);

                //footer row 
                var footerCell = new PdfPCell(new Phrase("footer"));
                footerCell.Colspan = 3;
                footerCell.HorizontalAlignment = Element.ALIGN_CENTER;
                table1.AddCell(footerCell);

                //adding some rows 
                for (int i = 0; i < 70; i++)
                {
                    //adds a new row
                    table1.AddCell(new Phrase("Cell[0], Row[" + i + "]"));
                    table1.AddCell(new Phrase("Cell[1], Row[" + i + "]"));
                    table1.AddCell(new Phrase("Cell[2], Row[" + i + "]"));

                    //sets the number of rows per page
                    if (i > 0 && table1.Rows.Count % 7 == 0)
                    {
                        pdfDoc.Add(table1);
                        table1.DeleteBodyRows();
                        pdfDoc.NewPage();
                    }
                }

                pdfDoc.Add(table1);
            }

            //open the final file with adobe reader for instance. 
            Process.Start("Test.pdf");
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    相关资源
    最近更新 更多