2016-08-05 76 views
1
Document document = new Document(); 
     PdfWriter.GetInstance(document, new FileStream("AverageScore.pdf", FileMode.Create)); 
     document.Open(); 
     document.Add(new Paragraph(cmd.ExecuteScalar().ToString())); 
     document.Close(); 

我尝试用这样的方式,但我不知道我怎么能在这方面增加:如何将listbox或datagridview导出为pdf文件?

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

感谢这么多的帮助。

回答

0

在这里,你有将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

0

我希望我有更多的信息,但这是我遇到的使用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