C# 打印词典列表<;字符串,字符串>;归档
假设我们在程序中声明了以下行:C# 打印词典列表<;字符串,字符串>;归档,c#,winforms,C#,Winforms,假设我们在程序中声明了以下行: List<Dictionary<string, string>> list = new List<Dictionary<string, string>>(); List List=新列表(); 因此,我们希望将此列表中的每个成员打印到一个文件中,并显示在单独的页面中,但都是一个文档,如MyDoc.xps。我怎样才能达到我的目的 编辑:我的困难在于如何在打印过程中创建新页面 很抱歉,如果与其他问题重复,我无法在站
List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
List List=新列表();
因此,我们希望将此列表中的每个成员打印到一个文件中,并显示在单独的页面中,但都是一个文档,如MyDoc.xps
。我怎样才能达到我的目的
编辑:我的困难在于如何在打印过程中创建新页面
很抱歉,如果与其他问题重复,我无法在站点线程中获得我的答案:| 一种可行的方法是:
System.Drawing.Printing
下的PrintDocument
类,并使用其PrintPage
事件逐个设置页面private List<Dictionary<string, string>> myList = new List<Dictionary<string, string>>();
private int pageIndex = 0;
private void PrintButton_Click(object sender, EventArgs e)
{
PrintDocument document = new PrintDocument();
document.PrintPage += new PrintPageEventHandler(document_PrintPage);
document.Print();
}
void document_PrintPage(object sender, PrintPageEventArgs e)
{
if (pageIndex >= myList.Count)
{
e.HasMorePages = false;
return;
}
Dictionary<string, string> curData = myList[pageIndex];
List<string> lines = new List<string>();
lines.Add("Items count: " + curData.Count);
curData.Keys.ToList().ForEach(key =>
{
lines.Add(string.Format("Key: {0}, Value: {1}", key, curData[key]));
});
e.Graphics.DrawString(string.Join("\n", lines), this.Font, SystemBrushes.WindowText, 0, 0);
pageIndex++;
e.HasMorePages = pageIndex < myList.Count;
}
请阅读编辑部分。请解释您尝试了什么。您是在Winforms还是WPF中进行此操作?这是专门针对.XPS文档的吗?Winforms。请注意,我说过,
就像MyDoc.xps一样
好吧,如果影子向导的答案对你没有帮助,你为什么不按照奥德的建议,把你写的代码发布到现在(“你已经尝试过的”)非常感谢:)这是我问题的答案:)干杯@Hossein这是基于我看到你的问题时得到并回忆起来的旧代码。
document.PrinterSettings.PrintToFile = true;
document.PrinterSettings.PrintFileName = "myfile.xps";