瑞雪 发表于 2024-11-29 16:02:12

Excel模板自身打印的时候显示一页,Spreadjs导入后打印不在一页

模板导入前打印预览(一页)



导入后打印预览(两页)

Wilson.Zhang 发表于 2024-11-29 16:02:13

瑞雪 发表于 2024-12-4 11:28
能将保存出来的pdf发给我一份吗?我看下差在哪里了
我使用您提供的代码片段中的导出功能相关代码,完全遵循您在代码中设置的打印选项,我未做修改或增删,打印预览效果如下图所示:



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

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

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

Wilson.Zhang 发表于 2024-11-29 17:35:20

您好!需要您提供一个能够复现问题的demo,我将据此分析。

瑞雪 发表于 2024-12-2 13:58:58

Wilson.Zhang 发表于 2024-11-29 17:35
您好!需要您提供一个能够复现问题的demo,我将据此分析。

demo上传了

Wilson.Zhang 发表于 2024-12-2 17:17:35

瑞雪 发表于 2024-12-2 13:58
demo上传了

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


请教下您使用的版本,如果是比17.1.10较早的版本,您可以在17.1.10版本亲测下看是否还会复现。如果问题不再复现,可以升级版本后使用。

瑞雪 发表于 2024-12-3 10:00:37

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;
         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.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 发表于 2024-12-4 09:13:38

本帖最后由 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版本测试均未能复现您描述的问题,无论是横向打印还是纵向打印,都可以连同页脚一起显示在一页内,如下图所示:

横向打印:


纵向打印:


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


瑞雪 发表于 2024-12-4 09:46:23

Wilson.Zhang 发表于 2024-12-4 09:13
根据您提供的代码片段,了解到您对sheet设置了居于页尾右下角的页脚,且内容为”調査計画表(2)_51_00_ ...

我的是131.0.6778.86
浏览器有设置吗?打印页出来后,详细设定里边的页边距。
我这边手动设置无页边距,打印出来在一页,如果设置的默认,打印出来就是两页

瑞雪 发表于 2024-12-4 11:28:08

Wilson.Zhang 发表于 2024-12-4 09:13
根据您提供的代码片段,了解到您对sheet设置了居于页尾右下角的页脚,且内容为”調査計画表(2)_51_00_ ...

能将保存出来的pdf发给我一份吗?我看下差在哪里了

瑞雪 发表于 2024-12-9 15:08:50

Wilson.Zhang 发表于 2024-12-4 15:37
我使用您提供的代码片段中的导出功能相关代码,完全遵循您在代码中设置的打印选项,我未做修改或增删,打 ...

好的 了解了,谢谢啦
页: [1] 2
查看完整版本: Excel模板自身打印的时候显示一页,Spreadjs导入后打印不在一页