找回密码
 立即注册

QQ登录

只需一步,快速开始

Traum

银牌会员

2

主题

13

帖子

3336

积分

银牌会员

积分
3336

活字格认证

最新发帖
Traum
银牌会员   /  发表于:2013-6-3 17:51  /   查看:11221  /  回复:11
如何用代码设置:

1、在打印时候默认A4纸横向打印?
2、如果内容超出A4纸大小,自动调整列宽,缩小字体显示内容,使其打印不超出A4纸范围?
3、预览的接口是哪个?

11 个回复

倒序浏览
Traum
银牌会员   /  发表于:2013-6-3 17:57:00
沙发
  1. printinfo.Preview = true;
  2. printinfo.Orientation = PrintOrientation.Landscape;
复制代码


预览只能这么设置吗?
有没有单独的预览接口?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-6-3 18:30:00
板凳
回复 2楼Traum的帖子

Traum 你好,
1.A4 横向打印:

  1. printset.PaperSize = new System.Drawing.Printing.PaperSize("Letter", 600, 300);
  2. printset.PaperSource = new System.Drawing.Printing.PrinterSettings.PaperSources[0].SourceName;
  3. printset.Orientation = PrintOrientation.Landscape;
复制代码


2.通过以下代码设置:

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

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

  6. // ... or check by page size
  7. printset.SmartPrintPagesTall = 1;
  8. printset.SmartPrintPagesWide = 1;

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

  15. // Assign the printer settings to the sheet and print it
  16. fpSpread1.Sheets[0].PrintInfo = printset;
  17. fpSpread1.PrintSheet(0);
复制代码


3.预览的接口是哪个?
预览Spread 内置方法只有 2# 代码,没有提供其他接口。
回复 使用道具 举报
Traum
银牌会员   /  发表于:2013-6-3 18:35:00
地板
回复 3楼iceman的帖子

在别的帖子找到这个:FpSpread.SetPrintPreview(new PrintPreviewDialog());
但是我试验了,不管用
就是想放一个按钮,直接点击就是预览
回复 使用道具 举报
Traum
银牌会员   /  发表于:2013-6-4 08:45:00
5#
回复 3楼iceman的帖子
  1. printset.PaperSource = new System.Drawing.Printing.PrinterSettings.PaperSources[0].SourceName;
复制代码
中PaperSources是属性啊! 不能这么写。报错
回复 使用道具 举报
Traum
银牌会员   /  发表于:2013-6-4 09:42:00
6#
有没有一个属性,可以对当前内容整体调整大小,比如宽、高、字体大小整体按比例缩小放大功能
回复 使用道具 举报
Traum
银牌会员   /  发表于:2013-6-4 11:28:00
7#
1、如果内容超出A4纸大小,自动调整列宽和列高,必要情况下缩小字体显示内容,使其打印不超出A4纸范围?
2、上面你给发的代码我测试了。只能调整列宽。并且如果我的单元格内某一行内容多的情况下,并且里面有换行。效果出不来,会分页显示。
3、是不是不需要设置A4纸呢?我看到默认就是A4纸大小。
回复 使用道具 举报
Traum
银牌会员   /  发表于:2013-6-4 12:03:00
8#
我在开发的时候报表编辑器是中文的,但是当打包好项目,安装完以后报表编辑器就成英文版的了
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-6-4 17:59:00
9#
回复 5楼Traum的帖子

设置 A4 纸张大小如下:

  1.             FarPoint.Win.Spread.PrintInfo printsetFirst = new FarPoint.Win.Spread.PrintInfo();
  2.             System.Drawing.Printing.PrintDocument printDoc = new System.Drawing.Printing.PrintDocument();
  3.             PaperSize pkSize = default(PaperSize);
  4.             System.Drawing.Printing.PaperSize paperSizeA4L = new System.Drawing.Printing.PaperSize();
  5.             Int32 cntPsL = printDoc.PrinterSettings.PaperSizes.Count;
  6.             for (Int32 i = 0; i <= cntPsL - 1; i++)
  7.             {
  8.                 pkSize = printDoc.PrinterSettings.PaperSizes[i];
  9.                 if (pkSize.PaperName.StartsWith("A4"))
  10.                 {
  11.                     paperSizeA4L = pkSize;
  12.                     break; // TODO: might not be correct. Was : Exit For
  13.                 }
  14.             }
  15.             printsetFirst.PaperSize = paperSizeA4L;
  16.             printsetFirst.PrintToPdf = true;
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-6-4 18:01:00
10#
回复 6楼Traum的帖子

可以使用 PrintInfo 下属性 ZoomFactor 来设置整体缩放比例。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部