我创建了2D字符串列表:
List<List<string>> questions = new List<List<string>>();
如何使用iTextSharp将此2D列表的元素添加到我的PDF文件?
if (pdfFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Document document = new Document(iTextSharp.text.PageSize.LETTER, 20, 20, 42, 35);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(pdfFile.FileName, FileMode.Create));
document.Open();
Paragraph paragraph = new Paragraph("Test");
document.Add(paragraph);
document.Close();
}
我已经尝试过简单的循环和命令:document.Add(questions[i]);
但它没有用。
答案 0 :(得分:0)
首先让我们来看看问题C# What does List<List<string>> mean?
的答案接受的答案显示了如何输出此2D列表的内容:
List<List<string>> lists;
...
foreach (List<string> list in lists)
{
foreach (string s in list)
{
Console.WriteLine(s);
}
}
现在看看问题How to create a table based on a two-dimensional array?
的答案它解释了如何使用List<List<string>>
的数据来构建PdfPTable
:
PdfPTable table = new PdfPTable(numColumns);
foreach (List<string> question in questions) {
foreach (string field in question) {
table.AddCell(field);
}
}
现在您需要做的就是将table
添加到Document
实例:
document.add(table);
重要提示:我不知道numColumns
的价值。您应该将numColumns
替换为string
对象的question
值。在创建questions
对象时,您(并且只有您)知道该问题的答案。实际上,您可以询问questions
列表的第一个元素的大小;这样你就不用猜了。请注意,假设每个question
具有相同数量的元素。
更新:如果您不想要表格,则应将string
值包装在段落中。例如:
foreach (List<string> question in questions) {
foreach (string field in question) {
document.Add(new Paragraph(field));
}
}