找回密码
 立即注册

QQ登录

只需一步,快速开始

hidevstudio

注册会员

2

主题

2

帖子

32

积分

注册会员

积分
32
  • 30

    金币

  • 主题

  • 帖子

最新发帖
hidevstudio
注册会员   /  发表于:2016-5-12 12:50  /   查看:4096  /  回复:1
目前一个SheetView的数据,在纸张横打时(PrintSheet),会打印出4页来

想要的效果是:将4页内容压缩后打印在一张纸上。

试:
1:使用SheetView.PrintInfo.ZoomFactor = 0.3之类的值,会产生GDI+的错误。
2:在ShowPrintDialog使用的情况下,
     在打印机的属性上,可以通过手动配置(Resizeing Option->Print Document To -> Scale To Fit)
     这就情况下就可以达成想定的要求。(问题是不可能每次都手动去配置 。)

请教:
有没有好的方式达到:试(2)的效果?

注:
不去考虑打印的纸张具体是A4还是A3。




1 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-5-12 14:25:45
沙发
首先设置ZoomFactor是可以的,报错可能是您环境的问题,这个您可以调试然后搜索下解决方案。
用其他设置也能达到您的要求,下面是示例代码,SmartPrintPagesTall设置大一些,SmartPrintPagesWide设置为1

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

  2.             printset.PrintType = FarPoint.Win.Spread.PrintType.All;
  3.             printset.Orientation = FarPoint.Win.Spread.PrintOrientation.Landscape;
  4.             printset.Preview = true;
  5.             printset.ShowPrintDialog = true;
  6.             FarPoint.Win.Spread.SmartPrintRulesCollection rules = new FarPoint.Win.Spread.SmartPrintRulesCollection();
  7.             rules.Add(new FarPoint.Win.Spread.ScaleRule(FarPoint.Win.Spread.ResetOption.None, 1F, 0.1F, 0.1F));
  8.             rules.Add(new FarPoint.Win.Spread.BestFitColumnRule(FarPoint.Win.Spread.ResetOption.None));

  9.             printset.SmartPrintRules = rules;
  10.             printset.UseSmartPrint = true;
  11.             printset.SmartPrintPagesWide = 1;
  12.             printset.SmartPrintPagesTall = 100;
  13.             printset.BestFitCols = true;
  14.             printset.BestFitRows = true;

  15.             //    printset.ZoomFactor = 0.3F;
  16.             fpSpread1.Sheets[0].PrintInfo = printset;
  17.             fpSpread1.PrintSheet(0);
  18.         }
复制代码

评分

参与人数 1满意度 +5 收起 理由
hidevstudio + 5 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部