彩票走势图

Spread for Windows Forms高级主题(7)---自定义打印的外观

转帖|其它|编辑:郝浩|2011-08-22 14:14:50.000|阅读 866 次

概述:表单打印的多个部分都可以进行自定义,大多数的自定义选项存在于PrintInfo对象中。大多数打印选项是在PrintInfo对象上进行设置, 并在表单级别上应用。当你执行打印操作时,你将一个特定的表单发送给使用这些设置的打印机。如果你想为不同的表单使用不同的打印设置,那么你可能需要重置 PrintInfo对象,然后在表单打印的间隔内做必要的修改。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  表单打印的多个部分都可以进行自定义,大多数的自定义选项存在于PrintInfo对象中。大多数打印选项是在PrintInfo对象上进行设置, 并在表单级别上应用。当你执行打印操作时,你将一个特定的表单发送给使用这些设置的打印机。如果你想为不同的表单使用不同的打印设置,那么你可能需要重置 PrintInfo对象,然后在表单打印的间隔内做必要的修改。

深入理解打印选项

  你可以通过设置PrintInfo对象的 属性,并将表单的PrintInfo属性值设置为该对象,来自定义打印设置。PrintInfo对象提供了以下属性用来自定义打印:

  属性   描述
  AbortMessage   获取或设置退出对话框显示的信息。
  BestFitCols   获取或设置列宽是否为满足打印最长字符串的宽度而调整。
  BestFitRows   获取或设置行高是否为满足打印最高字符串的高度而调整。
  Centering   获取或设置打印输出是否居中。
  Colors   获取或设置可在自定义页眉或页脚文本中使用的颜色列表。
  ColStart和 ColEnd   用来打印表单的一部分。
  FirstPageNumber   获取或设置打印在彩票走势图上的页码。
  Footer   为打印页面提供页脚。
  Header   为打印的页面提供页眉。
  Images   获取或设置可在自定义页眉或页脚中使用的图片列表。
  JobName   获取或设置打印作业的名称。
  Margin   获取或设置打印的页面空白。
  Opacity   获取或设置打印表单时所使用的不透明度; 它可以用来首先打印一个水印,然后再打印表单的内容。
  Orientation   获取或设置打印时的页面方向。
  PageStart和 PageEnd   用来打印一个页面区域。
  PageOrder   获取或设置页面打印的顺序。
  PaperSize   获取或设置所使用的纸张大小。
  PaperSource   获取或设置所使用的纸张来源。
  Preview   用来提供打印预览。
  Printer   获取或设置用来打印的打印机名称。
  PrintNotes   获取或设置是否打印单元格注释。
  PrintShapes   获取或设置是否打印浮动对象。
  PrintType   获取或设置需要打印的内容。
  RepeatColStart和 RepeatColEnd   获取或设置是否在每一个页面上打印相同的列集。
  RepeatRowStart 和 RepeatRowEnd   获取或设置是否在每一个页面上打印相同的行集。
  RowStart和 RowEnd   用来打印表单的一部分。
  ShowBorder   获取或设置是否在表单的四周打印边界。
  ShowColor   获取或设置是否打印在屏幕上出现的颜色。
  ShowColumnHeader 和 ShowRowHeader   获取或设置是否打印列标题和行标题。
  ShowGrid   获取或设置是否打印表单的网格线。
  ShowPrintDialog   获取或设置打印前是否显示打印对话框。
  ShowShadows   获取或设置是否打印标题阴影。
  SmartPrintPagesTall   获取或设置打印的页高。
  SmartPrintPagesWide   获取或设置打印的页宽。
  SmartPrintRules   用来设置打印优化的规则。
  UseMax   获取或设置是否只打印包含数据的行。
  UseSmartPrint   用来开启打印优化的规则。
  ZoomFactor   获取或设置打印页面时使用的缩放因子。

  示例代码创建了一个PrintInfo对象,并设置属性指定不打印网格线或行标题,并且只打印包含数据的单元格。

 
//创建PrintInfo对象并设置属性。
 
FarPoint.Win.Spread.PrintInfo printset =
new FarPoint.Win.Spread.PrintInfo();
 
printset.ShowGrid = false;
 
printset.ShowRowHeader = FarPoint.Win.Spread.PrintHeader.Hide;
 
printset.UseMax = true;
 
//为第一个表单设置PrintInfo属性。
 
fpSpread1.Sheets[0].PrintInfo = printset;
 
//打印表单。
 
fpSpread1.PrintSheet(0);
 

自定义打印作业设置

  如果你没有指定其他打印机的话,表单会使用你的Windows系统环境中当前的默认打印机进行打印。你可以在任意支持Windows的打印机上打印表单。

  你可以自定义的打印作业设置项包括打印机、纸张来源、以及纸张大小。相对应的,可以设置PrintInfo对象中的Printer,PaperSource,或PaperSize属性。

  下面的示例代码从一个复选框中选择了纸张来源,并在打印所有表单前设置了纸张的大小。

 
private void Form1_Load(object sender, System.EventArgs e)
 
{
 
int i;
 
System.Drawing.Printing.PrinterSettings ps =
new System.Drawing.Printing.PrinterSettings();
 
for (i = 0; i <= ps.PaperSources.Count - 1; i++)
 
{
 
comboBox1.Items.Add(ps.PaperSources[i].SourceName);
 
}
 
comboBox1.Text = ps.PaperSources[0].SourceName;
 
}
 
private void button1_Click(object sender, System.EventArgs e
 
{
 
FarPoint.Win.Spread.PrintInfo pi = new FarPoint.Win.Spread.PrintInfo();
 
System.Drawing.Printing.PrinterSettings
ps = new System.Drawing.Printing.PrinterSettings();
 
pi.PaperSize = new System.Drawing.Printing.PaperSize("Letter", 600, 300);
 
pi.PaperSource = ps.PaperSources[comboBox1.SelectedIndex];
 
fpSpread1.Sheets[0].PrintInfo = pi;
 
fpSpread1.PrintSheet(-1);
 
}

自定义打印页眉或页脚

  你可以在打印页面上显示页眉和页脚。使用PrintInfo类的 Header属性和 Footer属性,可能包含特殊的控制指令,你可以指定文本和变量,如页数,也可以指定字体的设置。与字体相关的指令以&quot;f"开头。

  下面的表中列出了可插入到页眉和页脚中的控制指令。

  控制字符   完整的命令   打印页面的页眉或页脚的行为
  /   /   插入正斜杠字符(/)
  /c   /c   调整项目居中
  /cl   /cl"n"   设置文本的字体颜色,使用以0为基准的颜色索引,n,在引号中(n可以是0或更大); 请参考Colors属性。
  /dl   /dl   使用长格式,插入日期
  /ds   /ds   使用短格式,插入日期
  /f   /f"n"   重新调用先前保存的字体设置(查看表中的/fs),使用以0为基准的索引,n,在引号中(n可以是0或更大)。
  /fb   /fb0   关闭加粗字体类型
    /fb1   打开加粗字体类型
  /fi   /fi0   关闭斜体字体类型
    /fi1   打开斜体字体类型
  /fk   /fk0   关闭删除线
    /fk1   打开删除线
  /fn   /fn"name"   使用引号中字体的名称,设置字体的名称。
  /fs   /fs"n"   保存字体设置以便重复使用,使用以0为基准的字体设置索引,n,在引号中(查看表中的/f)
  /fu   /fu0   关闭下划线
    /fu1   打开下划线
  /fz   /fz"n"   设置字体的大小
  /g   /g"n"   插入一张图形(图片),以0为基准的图片索引,n,在引号中(n可以为0或更大) 请参考Images属性。
  /l   /l   左对齐该项目(这是字母l或L,与Left等价)
  /n   /n   插入一个新行
  /p   /p   插入页码
  /pc   /pc   插入页数(打印作业中的总页面数)
  /r   /r   右对齐该项目
  /tl   /tl   使用长格式插入时间
  /ts   /ts   使用短格式插入时间

  如果你使用了多个控制字符,不要在字符之间留空格。字符可以为小写或大写格式; 为了简单起见,显示在这里的所有命令和示例都使用小写格式。

  打印表单(运行PrintSheet 方法)前定义页眉和页脚(设置 Header 和 Footer 属性)。

  如果颜色已经在Colors属性中进行了预定义,那么你可以从颜色列表中为文本指定一个颜色。

  如果图片已经在Images属性中进行了预定义,你可以指定一个图片。

  你可以添加文本包括页数和总的打印页数。

  你可以保存页眉或页脚中的字体设置,以便重复使用。

  这个是下面代码运行的结果。

  image

  下面的示例代码打印带有指定页眉和页脚文本的表单:

 
//创建PrintInfo对象并设置属性。
 

FarPoint.Win.Spread.PrintInfo

printset = new FarPoint.Win.Spread.PrintInfo();

 

printset.Colors = new Color[] {Color.Green,

Color.Yellow, Color.Gold, Color.Indigo, Color.Brown};

 
printset.Images = new Image[] {Image.FromFile
("C:\\images\\point.jpg"), Image.FromFile("C:\\images\\logo.gif"),
Image.FromFile("C:\\images\\icon.jpg")};
 
printset.Header = ""/fn\"Book Antiqua\" /fz\"14\" Print job for FarPoint Inc./n ";
 
printset.Footer = "/g\"1\"/r/cl\"4\"This is page /p of /pc";
 
//为第一个表单设置PrintInfo属性。
 
fpSpread1.Sheets[0].PrintInfo = printset;
 
//打印表单。
 
fpSpread1.PrintSheet(0);

在打印页面上循环打印行或列

  你可以指定出现在每一个打印页顶部的行或左边的列。使用PrintInfo对象的RepeatRowStart,RepeatRowEnd,RepeatColStart,和RepeatColEnd属性。

  下面的示例代码设置了循环选项,并使用了预览对话框。

 
FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo();
 
printset.RepeatColStart = 0;
 
printset.RepeatColEnd = 2;
 
printset.RepeatRowStart = 0;
 
printset.RepeatRowEnd = 2;
 
printset.Preview = true;
 
fpSpread1.Sheets[0].PrintInfo = printset;
 
fpSpread1.PrintSheet(0);

添加分页符

  你可以在指定的行或列前添加强制分页符。分页符不会在屏幕上显示,但是在打印表单时会强制分页。列的分页符位于指定列的左边。行的分页符位于指定行的上方。要添加或设置分页符,使用SetRowPageBreak 和SetColumnPageBreak方法。

  你也可以检索到表单中位于分页符后的下一行或列。要查看已经设置的分页符,使用GetRowPageBreaks方法返回行分页符的数量,使用GetColumnPageBreaks方法返回列分页符的数量。

  你可以使用GetPrintPageCount方法 计算表单的打印页数。

  下面的示例代码设置了行分页符,并为行分页符返回了总行数。

 
//为窗体的Load事件添加如下代码。
 
FarPoint.Win.Spread.PrintInfo pi = new FarPoint.Win.Spread.PrintInfo();
 
pi.UseMax =false;
 
fpSpread1.Sheets[0].PrintInfo = pi;
 
fpSpread1.Sheets[0].SetRowPageBreak(5,true);
 
//为按钮的Click事件添加如下代码。
 
int []i;
 
i = fpSpread1.GetRowPageBreaks(0);
 
foreach (object o in i)
 
{
 
listBox1.Items.Add(o);
 
}

为打印页面添加水印

  在打印表单时,你可以打印一张背景图片或水印。打印时,触发PrintBackground事件,然后在该事件中指定背景图片,并使用 PrintInfo.Opacity属性设置不透明度; 打印表单时,如果不透明度最高(透明度最低),则没有水印;而如果不透明度低(透明度高)时,则会显示水印。

  下面的代码示例展示了如何打印水印。

 
private void fpSpread1_PrintBackground(object sender, FarPoint.Win.Spread.PrintBackgroundEventArgs e)
 
{
 

FarPoint.Win.Picture pic = new FarPoint.Win.Picture

(System.Drawing.Image.FromFile("C:\\Spread70\\Samples\\Files\\cover.jpg"), FarPoint.Win.RenderStyle.Normal);

 
pic.AlignHorz = FarPoint.Win.HorizontalAlignment.Left;
 
pic.AlignVert = FarPoint.Win.VerticalAlignment.Top;
 
pic.Paint(e.Graphics, e.SheetRectangle);
 
}
 
private void button1_Click(object sender, System.EventArgs e)
 
{
 
FarPoint.Win.Spread.PrintInfo pi = new FarPoint.Win.Spread.PrintInfo();
 
pi.Opacity = 100;
 
fpSpread1.ActiveSheet.PrintInfo = pi;
 
fpSpread1.PrintSheet(0);
 
}

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:博客园

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP