簡體   English   中英

如何將listbox或datagridview導出到pdf文件?

[英]How to export listbox or datagridview to a pdf file?

Document document = new Document();
        PdfWriter.GetInstance(document, new FileStream("AverageScore.pdf", FileMode.Create));
        document.Open();
        document.Add(new Paragraph(cmd.ExecuteScalar().ToString()));
        document.Close();

我嘗試使用這種方式,但我不知道如何添加這一行:

document.Add(new Paragraph(cmd.ExecuteScalar().ToString()));

非常感謝你的幫助。

我希望我有更多的信息,但這是我遇到的使用PdfWriter的鏈接。 不知道哪個版本,但鏈接在這里... http://www.worldbestlearningcenter.com/index_files/csharp-pdf-list-combobox.htm

至於一些代碼......看起來這就是它發生的地方......

//multiple selection listbox
TextField mlistbox = new TextField(writer, new Rectangle(36, 690, 150, 740), "mlistbox");
mlistbox.Choices = languages;
mlistbox.ChoiceExports = exports;
mlistbox.Options = TextField.MULTISELECT;
List<int> selections=new List<int>();
selections.Add(0);
selections.Add(2);
mlistbox.ChoiceSelections=selections;

HTH

這里有一個示例將webgrid中的信息轉換為PDF,將其傳遞給XHTML,然后通過ITextSharp將其導出為PDF。 我測試了它,它的工作原理......

//Code to Export data to PDF file
            public FileStreamResult ExportPdf()
            {
                List data = new List();
                using (DatabaseEntities db = new DatabaseEntities())
                {
                    data = db.UserTables.ToList();
                }
                //convert all webgrid data to single string
                WebGrid grid = new WebGrid(source: data, canSort: false, canPage: false);
                string griddata = grid.GetHtml(
                        columns: grid.Columns(
                            grid.Column("UserID", "UserID"),
                            grid.Column("UserName", "User Name"),
                            grid.Column("Address", "Address"),
                            grid.Column("PostalCode", "Postal Code"),
                            grid.Column("Phone", "Phone")
                       )
                    ).ToString();
                //display styles for webgrid table in pdf sheet
                //because iTextSharp takes XHTML and css to pdf.so we need to pass data in XHTML format 
                string export = String.Format(""<html><head>{0}</head><body>{1}</body></html>", "<style>table{ border-spacing: 10px; border-collapse: separate;}</style>", griddata);
                //converting all data into bytes in UTF-8 format
                var bytes = System.Text.Encoding.UTF8.GetBytes(export);
                //Now prepare docment using iTextsharp module
                //And print using PDF writer
                using (var input = new MemoryStream(bytes))
                {
                    var output = new MemoryStream();
                    var document = new iTextSharp.text.Document(PageSize.A4, 50, 50, 50, 50);
                    var writer = PdfWriter.GetInstance(document, output);
                    writer.CloseStream = false;
                    document.Open();

                var XmlWorker = iTextSharp.tool.xml.XMLWorkerHelper.GetInstance();
                XmlWorker.ParseXHtml(writer, document, input, System.Text.Encoding.UTF8);
                document.Close();
                output.Position = 0;
                return new FileStreamResult(output, "application/pdf");

PD: http//www.mitechdev.com/2016/07/Export-web-grid-to-pdf-in-mvc5.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM