找回密码
 立即注册

QQ登录

只需一步,快速开始

刘君

中级会员

141

主题

335

帖子

942

积分

中级会员

积分
942

活字格认证

刘君
中级会员   /  发表于:2015-3-12 11:25  /   查看:4906  /  回复:1
列表框的打印存在问题见附图。
采用的优化打印方式。代码如下,

                    FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo();
                    FarPoint.Win.Spread.SmartPrintRulesCollection prules = new FarPoint.Win.Spread.SmartPrintRulesCollection();
                    printset.BestFitCols = true;     
                    printset.BestFitRows = true;   

                    printset.SmartPrintPagesTall = 1;  
                    printset.SmartPrintPagesWide = 1;   
                    prules.Add(new FarPoint.Win.Spread.BestFitColumnRule(FarPoint.Win.Spread.ResetOption.None));     
                    prules.Add(new FarPoint.Win.Spread.LandscapeRule(FarPoint.Win.Spread.ResetOption.Current));     

                    FarPoint.Win.Spread.ScaleRule mScale = new ScaleRule();
                    mScale.ResetOption = FarPoint.Win.Spread.ResetOption.None;   
                    mScale.StartFactor = 1;                          
                    mScale.EndFactor = (float)0.6;                              。
                    mScale.Interval = (float)0.1;                    
                    prules.Add(mScale);

                    printset.SmartPrintRules = prules;
                    printset.UseSmartPrint = true;
                    printset.ShowBorder = false;

                    // 把定义好的打印设置赋给表单,并打印该表单
                    mSpreadControl.fpSpread1.ActiveSheet.PrintInfo = printset;

列表框打印.jpg

77.99 KB, 下载次数: 82

1 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-3-12 13:52:00
沙发
回复 1楼刘君的帖子

我在Spread设计器上给单元格添加一个Listbox类型,然后将行高设置为能完全显示出所有内容。
接着打印预览,没有重现你的问题。

另外根据PrintInfo类的注释,里面提供了BestFitCols和BestFitRows属性用来在自定义的时候调整行高和列宽,使得其自适应内容。

具体可以参考产品文档的Understanding the Printing Options章节。
文档索引:Spread Windows Forms 8.0 Product Documentation > Developer's Guide > Managing Printing > Customizing the Appearance of the Printing > Understanding the Printing Options

代码参考:
  1. // Typically you would use one type of optimization; they are all shown here for illustration only

  2. // Define the printer settings for optimization
  3. FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo();
  4. FarPoint.Win.Spread.SmartPrintRulesCollection prules = new FarPoint.Win.Spread.SmartPrintRulesCollection();

  5. // ... use best fit of columns and rows
  6. printset.BestFitCols = true;
  7. printset.BestFitRows = true;

  8. // ... or check by page size
  9. printset.SmartPrintPagesTall = 1;
  10. printset.SmartPrintPagesWide = 1;

  11. // ... or use the rules defined
  12. prules.Add(new FarPoint.Win.Spread.BestFitColumnRule(FarPoint.Win.Spread.ResetOption.None));
  13. prules.Add(new FarPoint.Win.Spread.LandscapeRule(FarPoint.Win.Spread.ResetOption.Current));
  14. prules.Add(new FarPoint.Win.Spread.ScaleRule(FarPoint.Win.Spread.ResetOption.None, 1, 0.6, 0.1));
  15. printset.SmartPrintRules = prules;
  16. printset.UseSmartPrint = true;

  17. // Assign the printer settings to the sheet and print it
  18. fpSpread1.Sheets[0].PrintInfo = printset;
  19. fpSpread1.PrintSheet(0);
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部