找回密码
 立即注册

QQ登录

只需一步,快速开始

OldSky

注册会员

7

主题

25

帖子

88

积分

注册会员

积分
88
OldSky
注册会员   /  发表于:2019-1-18 11:35  /   查看:3675  /  回复:9
请教Spread打印时的页面设置问题:
1,打印时行太多,不能一页打印完,但是又希望列方向能尽可能的打印比率大一点。即1倍列宽,行高自动适应。
    如下代码可以调整一页内完全显示,但是不能分行和列调整比率,请问该如何设置。
        Dim rules As FarPoint.Win.Spread.SmartPrintRulesCollection = New FarPoint.Win.Spread.SmartPrintRulesCollection()
        rules.Add(New FarPoint.Win.Spread.ScaleRule(FarPoint.Win.Spread.ResetOption.None, 1.0F, 0.1F, 0.01F))

2,Spread表格中有否像excel里那样的打印分页符,在设置报表的时候就直接设置好,而不是在打印时在代码里指定第几行分页。

3,最后一行是空白(底部边框有线条),打印时没有打印这一行空白,底部边框线条移到上一行去了,请问如何解决。

以上,请指教。谢谢。

9 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-22 09:18:21
推荐
抱歉SmartPrintPagesTall需要设置一个大一点的值。


  1.             fpSpread1.ActiveSheet.ColumnCount = 40;
  2.             fpSpread1.ActiveSheet.RowCount = 500;
  3.             fpSpread1.ActiveSheet.Cells[499, 39].Value = "End";
  4.             fpSpread1.ActiveSheet.PrintInfo.Preview = true;
  5.             fpSpread1.ActiveSheet.PrintInfo.EnhancePreview = 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.01F, 0.01F));
  8.             fpSpread1.ActiveSheet.PrintInfo.SmartPrintRules = rules;

  9.             fpSpread1.ActiveSheet.PrintInfo.UseSmartPrint = true;
  10.             fpSpread1.ActiveSheet.PrintInfo.Orientation = PrintOrientation.Landscape;
  11.             fpSpread1.ActiveSheet.PrintInfo.SmartPrintPagesWide = 1;
  12.             fpSpread1.ActiveSheet.PrintInfo.SmartPrintPagesTall = 9999;

  13.             fpSpread1.PrintSheet(0);
复制代码

评分

参与人数 1满意度 +5 收起 理由
OldSky + 5

查看全部评分

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-18 19:01:29
沙发
第一条我不是特别明白,你是想自动根据行分页还是如何处理?
第二个设置分页位置代码为:
            fpSpread1.ActiveSheet.Rows[5].PageBreak = true;
第三点是您说的问题,解决方案也是添加空行或者边框设置的粗一点。
回复 使用道具 举报
OldSky
注册会员   /  发表于:2019-1-21 09:54:37
板凳
dexteryao 发表于 2019-1-18 19:01
第一条我不是特别明白,你是想自动根据行分页还是如何处理?
第二个设置分页位置代码为:
            fp ...

谢谢回答。不好意思回答晚了。

第一条,是希望由行自动分页,但是根据宽度是自动缩放。因为行数太多,不可能一页显示下。但是宽度可以缩放。
请参考excel打印时页面设置的缩放:调整为1页宽,()页高这里不设置。

第二条,我想问的就是有没有不用代码设置,直接在编辑spread表单的时候就设好的?

麻烦确认一下。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-21 11:35:00
地板
设计器里点击到行上的时候有PageBreak的属性可以设置。

如果sheet里有行设置了PageBreak true,那就根据这个设置分页了,如果您希望行按照页面自动分,就不要设置这个。
回复 使用道具 举报
OldSky
注册会员   /  发表于:2019-1-21 13:19:10
5#
dexteryao 发表于 2019-1-21 11:35
设计器里点击到行上的时候有PageBreak的属性可以设置。

如果sheet里有行设置了PageBreak true,那就根据 ...

好的,谢谢。

那这是对第二条的回复,请问第一条呢?有没有代码里只按页宽控制缩放的办法?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-21 16:22:32
6#
设置

            fpSpread1.ActiveSheet.PrintInfo.SmartPrintPagesWide = 1;
回复 使用道具 举报
OldSky
注册会员   /  发表于:2019-1-21 18:33:18
7#
dexteryao 发表于 2019-1-21 16:22
设置

            fpSpread1.ActiveSheet.PrintInfo.SmartPrintPagesWide = 1;

完全没有用啊。。。
比如说500行,40列,我是希望一页能显示全部40列,

上面的SmartPrintPagesWide我从0.1到1000试了效果都没什么变化啊。请确认。
回复 使用道具 举报
OldSky
注册会员   /  发表于:2019-1-22 09:43:48
9#
dexteryao 发表于 2019-1-22 09:18
抱歉SmartPrintPagesTall需要设置一个大一点的值。

好的,非常感谢。

此贴对应结束。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-22 11:52:50
10#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部