找回密码
 立即注册

QQ登录

只需一步,快速开始

home5p

论坛元老

6

主题

16

帖子

3万

积分

论坛元老

积分
31962

活字格认证

home5p
论坛元老   /  发表于:2012-2-3 10:20  /   查看:6804  /  回复:7
因为grid过长,同一row资料会分成二页,设定了 UseSmartPrint = true
是会显示于同一页,但cell的资料却颢示不全,想把字型缩小,但不知怎么设定导出的字体大小
又或者有什么属性可以设定,让cell里的资料可以不要被cut掉一半

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-2-3 13:49:00
沙发

回复 1# home5p 的帖子

home5p 你好,可以通过打印缩放功能来实现字体大小控制,测试代码:
  1. FarPoint.Web.Spread.PrintInfo prinf = new FarPoint.Web.Spread.PrintInfo();
  2. prinf.ZoomFactor = 0.5f;
  3. FpSpread1.ActiveSheetView.PrintInfo = prinf;
复制代码
回复 使用道具 举报
home5p
论坛元老   /  发表于:2012-2-3 14:46:00
板凳
你好,我不是要整个pdf缩小,而是pdf里的字体缩小
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-3 16:26:00
地板

回复 3# home5p 的帖子

楼主你好,:目前的情况是要么显示多页,要么就不能全部显示,没有提供直接改变打印字体的方法。给你带来不便,很抱歉~
回复 使用道具 举报
home5p
论坛元老   /  发表于:2012-2-3 16:41:00
5#
那请问可以设定纸张大小吗,若原本是A4,可否改成A3大小呢?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-3 16:50:00
6#

回复 5# home5p 的帖子

home5p 你好,可以在创建 PrintInfo 时设置纸张的大小,设置之后不能更改,详细内容请参考帮助文档 PringInfo 章节。
回复 使用道具 举报
home5p
论坛元老   /  发表于:2012-2-4 11:17:00
7#
想到一个笨方法解决自己的问题,就是在导出pdf前,先将grid的字体调小,让cell的内容不会被切掉,导出pdf后,马上把grid字体调回原本设定,这样既可以符合需求,也不会影响到web浏览时的字体大小

// 导出pdf前,先設定grid字型大小,讓同一row可以同一頁顯示,cell资料也可以完全显示
            FpSpread1.Sheets[0].DefaultStyle.Font.Size = 7;
            FpSpread1.Sheets[0].ColumnHeader.DefaultStyle.Font.Size = 7;
            FpSpread1.Sheets[0].RowHeader.DefaultStyle.Font.Size = 7;

            for (int sCol = 0; sCol < (int)FP1_COL.COLCOUNT; sCol++)
            {
                switch (sCol)
                {
                    default:
                        FpSpread1.Sheets[0].Columns[sCol].Font.Size = 7;
                        break;
                }
            }
            

//导出pdf
            FarPoint.Web.Spread.PrintInfo pi;
            pi = new FarPoint.Web.Spread.PrintInfo();
            pi.Orientation = FarPoint.Web.Spread.PrintOrientation.Landscape;
            pi.SmartPrintPagesTall = 1;
            pi.SmartPrintPagesWide = 1;
            pi.ZoomFactor = 0.8f;

            FpSpread1.ActiveSheetView.PrintInfo = pi;
            this.FpSpread1.SavePdf(this.FpSpread1.Sheets[0], FILEPATH);
            ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "openfiles", "window.open('" + fileName + "')", true);

//导出pdf后,再把grid字體調回原始設定
            FpSpread1.Sheets[0].DefaultStyle.Font.Size = 10;
            FpSpread1.Sheets[0].ColumnHeader.DefaultStyle.Font.Size = 10;
            FpSpread1.Sheets[0].RowHeader.DefaultStyle.Font.Size = 10;

            for (int sCol = 0; sCol < (int)FP1_COL.COLCOUNT; sCol++)
            {
                switch (sCol)
                {
                    default:
                        FpSpread1.Sheets[0].Columns[sCol].Font.Size = 10;
                        break;
                }
            }
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-6 13:16:00
8#

回复 7# home5p 的帖子

恩,感谢你把解决方案提供给我们,谢谢~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部