文本列表为pdf

本文关键字:pdf 列表 文本 | 更新日期: 2023-09-27 18:18:08

我有一个IList在c#中,我想把它放在PDF通过ittext。有什么办法可以做到吗?我已经找了一段时间了。

我想做的是:

s = BLLstudent.selectStudentById(Convert.ToInt16(Request.QueryString["s"]));
var data = BLLevk.selectEvkDetailsVanStudent(s.pk_studentID);
Document mySavedPDF = new Document();
FileStream fs = new FileStream(@"C:'Users'Toon'Documents'Visual Studio 2010'WebSites'LilyNoone-LessLes-503729a'prints'" + s.studentNaam + "_" + s.studentVoornaam + ".pdf", FileMode.Create);
PdfWriter.GetInstance(mySavedPDF, fs);
mySavedPDF.Open();
mySavedPDF.Add(data);
mySavedPDF.CloseDocument();

但是这里写着

错误2参数1:不能从"System.Collections.Generic"转换。我把'列到'System.IO '。C:' users ' toon ' documents ' visual Studio 2010'WebSites'evk- application -181211'web'admin'a_overzicht_student.aspx.cs 95 77 C:…'evk- application -181211'

是否有直接插入列表的方法?

提前致谢

文本列表为pdf

不,没有办法直接直接将通用IList添加到Document对象。如果你看一下文件。添加方法时,唯一有效的参数是一个Element对象—这就是抛出Exception的原因。如果您考虑一下,尝试将泛型illist添加到PDF中将是非常困难的-至少您必须考虑illist元素type,以及如何在PDF中设置每个成员属性的格式(在您使用Reflection确定类型和成员之后)。

所以你有几个选择。

  • 将你的列表转换成一个简单的XML表示,然后发送给XMLWorker或HTMLWorker。
  • 编写自己的包装器或代码来显示您的列表。

第二个选择还不错,您可以完全控制如何显示您的集合。下面是一个简单的例子:

Response.ContentType = "application/pdf";
IList<Student> students = Student.GetStudents();
using (Document document = new Document()) {
  PdfWriter writer = PdfWriter.GetInstance(
    document, Response.OutputStream
  );
  document.Open();
  foreach (Student s in students) {
    document.Add(new Paragraph(string.Format(
      "[{0:D8}] - {1}, {2}. MAJOR: {3}",
      s.Id, s.NameLast, s.NameFirst, s.Major
    )));
    List list = new List(List.ORDERED);
    foreach (string c in s.Classes) {
      list.Add(new ListItem(c));
    }
    document.Add(list);
  }
}
用这样一个简单的类:
public class Student {
  public string NameLast, NameFirst, Major;
  public int Id;
  public string[] Classes;
  public static IList<Student> GetStudents() {
    string[] majors = {"Math", "Engineering", "CS"};
    List<Student> l = new List<Student>();
    for (int i = 0; i < majors.Length;) {
      l.Add(new Student() {
        Major = majors[i], 
        Id = ++i, NameLast = string.Format("LastNameStudent{0}", i),
        NameFirst = string.Format("FirstnameStudent{0}", i),
        Classes = new string[] {"Calc I", "Physics II", "Databases"}
      });
    }
    return l;
  }
}