找回密码
 立即注册

QQ登录

只需一步,快速开始

刘君

中级会员

141

主题

335

帖子

942

积分

中级会员

积分
942

活字格认证

刘君
中级会员   /  发表于:2015-2-6 12:49  /   查看:6337  /  回复:5
附件中的代码设置纸张不起用用,请帮忙检查下。谢谢

MySpread.rar

1.92 MB, 下载次数: 248

5 个回复

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

我们已经对你的程序进行测试。
打开你的工程运行后,运行起来,需要做哪些具体操作?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
刘君
中级会员   /  发表于:2015-2-6 14:49:00
板凳
1、 在表格中随便输入些内容;
2、选择纸张,
3、点击预览;
4、重复上述2、3步发现不同纸张下预览效果一样。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-2-6 15:41:00
地板
回复 3楼刘君的帖子

我对你的代码做了比较微小的改动,主要就是将下面这句代码放到buttonclick事件里了。
  1. pd.DefaultPageSettings.PaperSize
复制代码


我测试了下,换A4纸和A6纸后,然后预览,纸张大小不一样。
请注意:在预览界面预览的时候,要将预览的Zoom调成100%,默认是自动填充的,会将纸张自动放大缩小调节到当前预览界面可以展示出来,会对观察产生误差。

测试示例如下:

TestMySpread.zip (2.26 MB, 下载次数: 273)

评分

参与人数 1满意度 +5 收起 理由
刘君 + 5 解决了问题

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
刘君
中级会员   /  发表于:2015-2-6 16:17:00
5#
谢谢,纸张的问题已解决,但纸张的页边距我怎么设置不了?

            pd.DefaultPageSettings.PaperSize = printDoc.PrinterSettings.PaperSizes[comboBox1.SelectedIndex];
            pd.DefaultPageSettings.Margins = new Margins(100, 20, 10, 20);
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-2-6 17:12:00
6#
回复 5楼刘君的帖子

因为spread都是在pd_PrintPage事件里画的,下面代码里设置是PageBounds,没有考虑Marge,PageBounds.x和PageBound.y都是0,因此无论怎么设置都只会画在0,0位置。
  1.             Rectangle rect = new Rectangle(ev.PageBounds.X, ev.PageBounds.Y, ev.PageBounds.Width / 2, ev.PageBounds.Height / 2);
复制代码


需要按照自己需求更改代码,比如你需要考虑Marge,那么就添加判断语句,判断Margin的值就可以了。
我简单给你个思路:
  1. Rectangle rect = ev.MarginBounds;
复制代码

这样改代码就可以了。

如果你需要自定义打印预览,接下来还会遇到相关的问题。这都和这3个控件相关,PrintDocument,PrintDialog和PrintPreviewDialog是微软的标准控件,微软的msdn会有更多的相关资料供你参考。

评分

参与人数 1满意度 +5 收起 理由
刘君 + 5 OK

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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