示例代码使用SmartPrintRulesCollection对象中设置的自定义打印规则进行打印。在这个示例中,如果表单通过将列宽缩减为最长文本字符串的长度可以填充到一个页面中,那么它将使用收缩列的方式打印表单。 如果收缩列宽还不能满足要求时,则保持收缩状态,并尝试以横向模式进行打印。如果使用收缩列和横向打印都不能满足要求,则保持这些设置,并尝试缩放表单,开始时为100%,然后每次减少20%,直到40%为止。
[C#] //创建打印规则。 FarPoint.Win.Spread.SmartPrintRulesCollection printrules = new FarPoint.Win.Spread.SmartPrintRulesCollection(); printrules.Add(new FarPoint.Win.Spread.BestFitColumnRule(FarPoint.Win.Spread.ResetOption.None)); printrules.Add(new FarPoint.Win.Spread.LandscapeRule(FarPoint.Win.Spread.ResetOption.None)); printrules.Add(new FarPoint.Win.Spread.ScaleRule(FarPoint.Win.Spread.ResetOption.All, 1.0f, .4f, .2f)); //创建PrintInfo对象并设置属性。 FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo(); printset.SmartPrintRules = printrules; printset.UseSmartPrint = true; //创建SheetView对象并把它赋给第一个表单。 FarPoint.Win.Spread.SheetView SheetToPrint = new FarPoint.Win.Spread.SheetView(); SheetToPrint.PrintInfo = printset; fpSpread1.Sheets[0] = SheetToPrint; //打印表单。 fpSpread1.PrintSheet(0); [Visual Basic] '创建打印规则。 Dim printrules As New FarPoint.Win.Spread.SmartPrintRulesCollection() printrules.Add(New FarPoint.Win.Spread.BestFitColumnRule(FarPoint.Win.Spread.ResetOption.None)) printrules.Add(New FarPoint.Win.Spread.LandscapeRule(FarPoint.Win.Spread.ResetOption.None)) printrules.Add(New FarPoint.Win.Spread.ScaleRule(FarPoint.Win.Spread.ResetOption.All, 1.0F, 0.4F, 0.2F)) '创建PrintInfo对象并设置属性。 Dim printset As New FarPoint.Win.Spread.PrintInfo() printset.SmartPrintRules = printrules printset.UseSmartPrint = True '创建SheetView对象并把它赋给第一个表单。 Dim SheetToPrint As New FarPoint.Win.Spread.SheetView() SheetToPrint.PrintInfo = printset FpSpread1.Sheets(0) = SheetToPrint '打印表单。 FpSpread1.PrintSheet(0) |