引用项:
using DevExpress.XtraPrinting;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraEditors.Repository;
private void Print_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
GridControl gc = gridControl1;
GridView gv = gridView1;
//设置内容超长的列换行显示 (需要在下方关闭事件中恢复)
//RepositoryItemMemoEdit> using DevExpress.XtraEditors.Repository;
RepositoryItemMemoEdit repositoryitemmemoedit = new RepositoryItemMemoEdit();//关键设置
gv.OptionsView.RowAutoHeight = true;//关键设置
gv.Columns.ColumnByFieldName("fieldname").MaxWidth = 240;//自己根据打印效果调整
gv.Columns.ColumnByFieldName("fieldname").MaxWidth = 240;//自己根据打印效果调整
gv.Columns.ColumnByFieldName("fieldname").ColumnEdit = repositoryitemmemoedit;//关键设置
gv.Columns.ColumnByFieldName("fieldname").ColumnEdit = repositoryitemmemoedit;//关键设置
//设置不打印的列隐藏
gv.OptionsSelection.MultiSelect = false;//勾选列
//gv.Columns.ColumnByFieldName("fieldname").Visible = false;//隐藏指定列
//设置打印出来的页面中表格自适应列宽
gv.OptionsPrint.AutoWidth = true;
//
PrintingSystem print = new DevExpress.XtraPrinting.PrintingSystem();//打印对象
PrintableComponentLink link = new PrintableComponentLink(print);//内容设置对象
link.PaperKind = System.Drawing.Printing.PaperKind.A4;
link.Landscape = true;//设置横打
print.Links.Add(link);
link.Component = gc;//要打印的控件
string _PrintHeader = "你的标题";
PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
phf.Header.Content.Clear();
phf.Header.Content.AddRange(new string[] { "", _PrintHeader, "" });
phf.Header.Font = new System.Drawing.Font("微软雅黑", 14, System.Drawing.FontStyle.Bold);
phf.Header.LineAlignment = BrickAlignment.Center;
link.CreateDocument(); //创建文档
print.PreviewFormEx.Show();//预览
print.PrintDlg();//弹打印窗口让用户选打印机
//打印界面关闭时触发
print.PreviewFormEx.FormClosed += Preview_Closed;
}
public void Preview_Closed(object sender, FormClosedEventArgs e)
{
//恢复主页的显示效果
this.gridView1.OptionsSelection.MultiSelect = true;//恢复勾选列
this.gridView1.Columns.ColumnByFieldName("fieldname").Visible = true;//恢复指定列
this.gridView1.OptionsView.RowAutoHeight = false;
//恢复换行列的样式设置
this.gridView1.Columns.ColumnByFieldName("fieldname").MaxWidth = 0;
this.gridView1.Columns.ColumnByFieldName("fieldname").MaxWidth = 0;
this.gridView1.Columns.ColumnByFieldName("fieldname").ColumnEdit = null;
this.gridView1.Columns.ColumnByFieldName("fieldname").ColumnEdit = null;
this.gridView1.BestFitColumns();//这是自带的最佳列宽显示
}