我需要打印一个objectlistview,并想使用ListViewPrinter-Class。 这是 a 已经做过的事情:
BrightIdeasSoftware.ListViewPrinter printer = new BrightIdeasSoftware.ListViewPrinter();
printer.AlwaysCenterListHeader = true;
printer.ListView = this.AenderungenFOLV;
printer.DocumentName = "Fuhrpark Änderungsliste";
printer.Header = "Fuhrpark Änderungsliste";
printer.DefaultPageSettings.Margins.Top = 5;
printer.DefaultPageSettings.Margins.Left = 5;
printer.DefaultPageSettings.Margins.Right = 5;
printer.IsListHeaderOnEachPage = true;
printer.Watermark = "Fuhrpark";
printer.WatermarkTransparency = 50;
printer.Footer = "Fuhrpark - " + DateTime.Now.ToString("dddd, dd.MMMM yyyy HH:mm");
printer.PrintPreview();
这是前面代码的结果:
我想让列表适合页面大小。它总是那么小并且包裹着 ListHeader。设置
printer.ListHeaderFormat.CanWrap = false;
不工作。它只是使标题文本以“...”结尾。
提前致谢。
问候,放松
最佳答案
我相信这两个“功能”均不受开箱即用支持。本质上,ListViewPrinter 正在打印 ObjectListView 的精确表示。如果您的标题没有包含在 OLV 本身中,则可能是由于字体较小所致。
关于调整页面大小,它归结为同样的问题。 ListViewPrinter 本身不会操作 OLV。但是,您可以在打印之前手动重新设置列格式以适合页面,然后再重置。
我正在我的一个应用程序中执行类似的操作,因为用户可以动态选择应打印哪些列。该对话框包含一个 PrintPreviewControl,它可以立即更新所做的任何更改的 View 。如果您更改列或整个 ListView 的宽度,ListViewPrinter 将反射(reflect)这一点。
关于c# - 如何使用 ListViewPrinter 类打印 Objectlistview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24569457/