找回密码
 立即注册

QQ登录

只需一步,快速开始

vic

注册会员

16

主题

50

帖子

138

积分

注册会员

积分
138

[已处理] 打印的问题

vic
注册会员   /  发表于:2021-11-15 15:03  /   查看:2486  /  回复:4
1金币
image.png677512817.png
点击打印 展示成这种样式,大概是啥问题。
// 公共配置  纸张 表行头 表列头  外表框
            printInfo.paperSize(new GC.Spread.Sheets.Print.PaperSize(GC.Spread.Sheets.Print.PaperKind.a4));
            printInfo.showRowHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);
            printInfo.showColumnHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);
            printInfo.showBorder(false);
            // printInfo.bestFitColumns(true);
            // printInfo.bestFitRows(true);
            // printInfo.fitPagesTall(1);
            // printInfo.fitPagesWide(1);
            // 开始行列结束行列
            !!sheetPrintSet.pageCol && printInfo.columnEnd(sheetPrintSet.pageCol);
            !!sheetPrintSet.pageRow && printInfo.rowEnd(sheetPrintSet.pageRow);
            // 打印方向 pageDirection 1纵向
            printInfo.orientation( sheetPrintSet.pageDirection == 1 ? GC.Spread.Sheets.Print.PrintPageOrientation.portrait : GC.Spread.Sheets.Print.PrintPageOrientation.landscape);
            // 对齐方式 pageCenterHori pageCenterVert
            let printcenter= (sheetPrintSet.pageCenterHori==1 && sheetPrintSet.pageCenterVert==1) ? GC.Spread.Sheets.Print.PrintCentering.both : sheetPrintSet.pageCenterHori==1 ? GC.Spread.Sheets.Print.PrintCentering.horizontal : sheetPrintSet.pageCenterVert==1 ? GC.Spread.Sheets.Print.PrintCentering.vertical : GC.Spread.Sheets.Print.PrintCentering.none;

            printInfo.centering(printcenter);
            // 质量
            // printInfo.qualityFactor(5);
            // 边距
            printInfo.margin({ top:!sheetPrintSet.ifHeaderFooter?sheetPrintSet.pageUp:30+sheetPrintSet.pageUp, bottom:!sheetPrintSet.ifHeaderFooter?sheetPrintSet.pageDown:30+sheetPrintSet.pageDown, left: sheetPrintSet.pageLeft, right: sheetPrintSet.pageRight, header:sheetPrintSet.pageHeader, footer:sheetPrintSet.pageFooter });

            if(sheetPrintSet.uncertFlag && sheetPrintSet.uncertFlag == '1'){
                printInfo.repeatColumnStart(sheetPrintSet.cycleStartCol);
                printInfo.repeatColumnEnd(sheetPrintSet.cycleStartCol+sheetPrintSet.cycleColNum);
                printInfo.repeatRowStart(sheetPrintSet.cycleStartRow);
                printInfo.repeatRowEnd(sheetPrintSet.cycleStartRow+sheetPrintSet.cycleRowNum);
            }

            !!sheetPrintSet.ifHeaderFooter && this.setSheetHead(printInfo,sheetName,"&P/&N");

            return printInfo


最佳答案

查看完整内容

chrome96已修复该bug,可以升级测试下。

4 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-15 15:03:21
来自 5#
chrome96已修复该bug,可以升级测试下。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-15 15:12:17
2#
请问你的浏览器版本是Chrome95的吗?此问题是由chrome升级引起的,猜测可能是chrome的bug。
现提供一个解决方案,您可以参考测试下:

在项目中添加以下代码,
// 通过监听BeforePrint事件,在打印前执行下方代码逻辑:
  1. spread.bind(GC.Spread.Sheets.Events.BeforePrint, function (type, args) {
  2.       var iframe = args.iframe;
  3.       var printFn = iframe.contentWindow.print;
  4.      iframe.contentWindow.print = function () {
  5.           setTimeout( function () {
  6.                 printFn.apply( null , arguments);
  7.           }, 10);
  8.     }
  9. });
复制代码


回复 使用道具 举报
vic
注册会员   /  发表于:2021-11-15 15:34:03
3#
是的95版本,不过我设置缩放为2倍,可以显示了
printInfo.zoomFactor(sheetPrintSet.pageZoom??2);
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-15 16:17:29
4#
本帖最后由 Derrick.Jiao 于 2021-12-13 09:42 编辑
vic 发表于 2021-11-15 15:34
是的95版本,不过我设置缩放为2倍,可以显示了
printInfo.zoomFactor(sheetPrintSet.pageZoom??2);

可以就好,就目前的调研,比较好的workaround就是上面利用事件绕开这个浏览器的bug。
————————————————————————————————————————
该问题已在96以后的版本中发修复。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部