我需要打印一个objectlistview并想使用ListViewPrinter-Class。
这是已经做的:

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本身中,则可能是因为字体较小。

关于适合Pagesize,它归结为相同的问题。 ListViewPrinter不会自行操作OLV。但是,您可以在打印之前手动重新设置列的格式以适合页面并在之后重新设置。

我在一个应用程序中正在执行类似的操作,因为用户可以动态选择应打印的列。该对话框包含一个PrintPreviewControl,它可以立即对所做的任何更改更新视图。如果您更改列或整个列表视图的宽度,则ListViewPrinter会反映出来。

09-20 05:53