请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

瑞雪
初级会员   /  发表于:2024-11-29 16:02  /   查看:108  /  回复:8
5金币
模板导入前打印预览(一页)

image.png496661376.png

导入后打印预览(两页)
image.png795552673.png

image.png703888244.png

8 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:7 天前
沙发
您好!需要您提供一个能够复现问题的demo,我将据此分析。
回复 使用道具 举报
瑞雪
初级会员   /  发表于:4 天前
板凳
Wilson.Zhang 发表于 2024-11-29 17:35
您好!需要您提供一个能够复现问题的demo,我将据此分析。

demo上传了

555.rar

12.24 KB, 下载次数: 4

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:4 天前
地板

我使用最新17.1.10版本导入您提供的xlsx文件,如下图所示,可以看到打印预览呈一页。
显示一页.jpg235052184.png

请教下您使用的版本,如果是比17.1.10较早的版本,您可以在17.1.10版本亲测下看是否还会复现。如果问题不再复现,可以升级版本后使用。
回复 使用道具 举报
瑞雪
初级会员   /  发表于:3 天前
5#
Wilson.Zhang 发表于 2024-12-2 17:17
我使用最新17.1.10版本导入您提供的xlsx文件,如下图所示,可以看到打印预览呈一页。

我用的17.1.5,使用的是spread.print()打印方式打印的,你截图上边我的页脚没有了

我的代码如下:

<script type="text/javascript">

       var spread = new GC.Spread.Sheets.Workbook(document.getElementById("printArea1"));

       var excelIo = new GC.Spread.Excel.IO();
       var excelFilePath = "https://localhost:7218/EXCEL/555.xlsx";
       var xhr = new XMLHttpRequest();
       xhr.open('GET', excelFilePath, true);
       xhr.responseType = 'blob';
       xhr.onload = function (e) {
           if (this.status == 200) {
               // get binary data as a response
               var blob = this.response;
               // convert Excel to JSON
               excelIo.open(blob, function (json) {
                   var workbookObj = json;
                   spread.fromJSON(workbookObj);
               }, function (e) {
                   // process error
                   alert(e.errorMessage);
               }, {});
           }
       };

       xhr.send();
       //spread.name = "555.xlsx";


       document.getElementById('print1').onclick = function () {
           var sheet = spread.sheets[0];
           var printInfo = sheet.printInfo();
           printInfo.showRowHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);
           printInfo.showColumnHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);

           var margintop = printInfo.margin().top;
           var marginbottom = printInfo.margin().bottom;
           var marginleft = printInfo.margin().left;
           var marginright = printInfo.margin().right;
           var marginheader = printInfo.margin().header;
           var marginfooter = printInfo.margin().footer;

           printInfo.margin({ top: 20, bottom: 20, left: 20, right: 20, header: 1, footer: 1 });
           printInfo.showBorder(false);

           var printHeaderRight = printInfo.pageHeaderFooter().normal.header.right;
           printHeaderRight = printHeaderRight.replaceAll("\r\n", "")

           var printFootRight = printInfo.pageHeaderFooter().normal.footer.right;
           if (printFootRight == "&F") {
               printFootRight = "調査計画表(2)_51_00_20241122145348.xlsx";
           }

           var orientation = spread.sheets[0].printInfo().orientation();
           if (orientation == 2) {
               printInfo.orientation(GC.Spread.Sheets.Print.PrintPageOrientation.landscape);
           } else {
               printInfo.orientation(GC.Spread.Sheets.Print.PrintPageOrientation.portrait);
           }

           
           printInfo.pageHeaderFooter({
               normal: {
                   header: {
                       left: "",
                       center: "",
                       right: printHeaderRight
                   },
                   footer: {
                       center: "",
                       right: '調査計画表(2)_51_00_20241122145348.xlsx'
                   }
               }
           });
           //spread.name = "555.xlsx";
           spread.print();
       };
</script>
打印出来就是两页,页脚移动到第二页了


回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:前天 09:13
7#
本帖最后由 Wilson.Zhang 于 2024-12-4 09:14 编辑
瑞雪 发表于 2024-12-3 10:00
我用的17.1.5,使用的是spread.print()打印方式打印的,你截图上边我的页脚没有了

我的代码如下:

根据您提供的代码片段,了解到您对sheet设置了居于页尾右下角的页脚,且内容为”調査計画表(2)_51_00_20241122145348.xlsx“。我在17.1.5和最新17.1.10版本测试均未能复现您描述的问题,无论是横向打印还是纵向打印,都可以连同页脚一起显示在一页内,如下图所示:

横向打印:
1733274843837.png661862792.png

纵向打印:
1733274876395.png373364562.png

或许您可以排查下浏览器版本,我测试使用的是chrome浏览器,版本详情如下图所示:
1733274776220.png602223510.png

回复 使用道具 举报
瑞雪
初级会员   /  发表于:前天 09:46
8#
Wilson.Zhang 发表于 2024-12-4 09:13
根据您提供的代码片段,了解到您对sheet设置了居于页尾右下角的页脚,且内容为”調査計画表(2)_51_00_ ...

我的是131.0.6778.86
浏览器有设置吗?打印页出来后,详细设定里边的页边距。
我这边手动设置无页边距,打印出来在一页,如果设置的默认,打印出来就是两页
回复 使用道具 举报
瑞雪
初级会员   /  发表于:前天 11:28
9#
Wilson.Zhang 发表于 2024-12-4 09:13
根据您提供的代码片段,了解到您对sheet设置了居于页尾右下角的页脚,且内容为”調査計画表(2)_51_00_ ...

能将保存出来的pdf发给我一份吗?我看下差在哪里了
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:前天 15:37
10#
瑞雪 发表于 2024-12-4 11:28
能将保存出来的pdf发给我一份吗?我看下差在哪里了

我使用您提供的代码片段中的导出功能相关代码,完全遵循您在代码中设置的打印选项,我未做修改或增删,打印预览效果如下图所示:
1733297782177.png104534606.png


据您所说在print()方法弹出的对话框中页边距设置为”无“即可打印在同页,而设置为”默认“即打印为两页。这个是正常的,您通过代码设置的页边距对sheet有效,而对话框中的页边距设置选项为浏览器的打印设置选项,本来设置了页边距,再在浏览器打印中设置默认页边距,那么,页边距将变大,导致内容无法呈现在一页。

所以,为了确保打印效果符合预期,您在sheet上设置了页边距后便可以不在对话框中设置页边距。

附件即以您的代码片段运行后导出的PDF文件,分别为纵向和横向,您可以看到页脚均与页面内容在同页,您可以比对下。

打印页脚测试(横向).pdf

146.37 KB, 下载次数: 0

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部