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

QQ登录

只需一步,快速开始

瑞雪
初级会员   /  发表于:2025-1-8 11:45  /   查看:128  /  回复:7
2金币


           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);
           }


image.png951478881.png

image.png892836608.png

以下是我全部的代码

<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/test1.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();
       };

       document.getElementById('save1').onclick = function () {
           var worksheet = spread.sheets[0];
           worksheet.getPageSetup().setIsPercentScale(false);
           worksheet.getPageSetup().setFitToPagesWide(1);
           worksheet.isPrintLineVisible(true);
           spread.export(function (blob) {
               saveAs(blob, "sss.xlsx");
           }, function (e) {
               console.log(e);
           }, {
               fileType: GC.Spread.Sheets.FileType.excel
           });
       };


       document.getElementById('test').onclick = function () {

           $("#PageForm").attr("action", "Home/Privacy");
           $("#PageForm").submit();
     }

</script>

image.png145442198.png

最佳答案

查看完整内容

注意,不管是从设计器的ui界面设置打印配置,还是从代码设置printInfo,它们本质上都是printInfo,是同一套东西。 PrintInfo会影响到打印,也会影响到另存为PDF。 其中打印功能会在生成打印图像后 走浏览器的打印接口,所以在浏览器的打印窗口还需要再进行设置(此窗口的配置无法通过js代码修改,所以从技术上无法同步PrintInfo的设置,浏览器会自动记忆上一次的配置项),要注意图片本身已经带有了边距信息,建议在浏览 ...

7 个回复

倒序浏览
最佳答案
最佳答案
Matthew.Xue
超级版主   /  发表于:2025-1-8 11:45:07
来自 6#
瑞雪 发表于 2025-1-8 18:10
好吧,那模板中的打印方向就废弃了是不

注意,不管是从设计器的ui界面设置打印配置,还是从代码设置printInfo,它们本质上都是printInfo,是同一套东西。

PrintInfo会影响到打印,也会影响到另存为PDF


其中打印功能会在生成打印图像后 走浏览器的打印接口,所以在浏览器的打印窗口还需要再进行设置(此窗口的配置无法通过js代码修改,所以从技术上无法同步PrintInfo的设置,浏览器会自动记忆上一次的配置项),要注意图片本身已经带有了边距信息,建议在浏览器的打印设置中设置边距为0。

另存为PDF则不会走浏览器的打印,而是直接返回PDF文件的二进制流,开发人员可以将此二进制流下载为文件,也可以直接调用打印机的sdk,让打印机进行打印。但是由于浏览器的限制,另存为PDF时需要注册字体,否则会导致未注册的字体显示错误,这里是注册PDF字体的demo。


所以您说的打印配置是否废弃了,其实并没有,上述两种场景下它都有作用,但是打印的结果还受到浏览器打印窗口配置的影响。如果您希望不要受到浏览器打印窗口的影响,可以考虑使用另存为PDF的功能~
回复 使用道具 举报
八嘎呀路
注册会员   /  发表于:2025-1-8 12:25:39
2#
调一下浏览器的打印设置试试
image.png30997618.png
回复 使用道具 举报
瑞雪
初级会员   /  发表于:2025-1-8 13:34:28
3#
八嘎呀路 发表于 2025-1-8 12:25
调一下浏览器的打印设置试试

这需要是手动调整,但是如果模板的横向纵向是不确定的,手动调整不现实吧
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-1-8 16:46:42
4#
本帖最后由 Matthew.Xue 于 2025-1-8 16:50 编辑

您好,请问您说的打印预览是浏览器的打印预览,还是SpreadJS的打印预览呢?

SpreadJS的打印要借助浏览器的打印功能,SpreadJS中设置的那些打印选项,只会影响SpreadJS向浏览器的打印接口传输的图片,您在浏览器那里还需要再次设置打印的纸张方向、页边距等内容。
所以如果您说的是浏览器的打印预览,那么这是正常的现象,如果是SpreadJS的打印预览,请提供一个可复现的demo,我们会上报给研发修复~
回复 使用道具 举报
瑞雪
初级会员   /  发表于:2025-1-8 18:10:09
5#
Matthew.Xue 发表于 2025-1-8 16:46
您好,请问您说的打印预览是浏览器的打印预览,还是SpreadJS的打印预览呢?

SpreadJS的打印要借助浏览器 ...

好吧,那模板中的打印方向就废弃了是不
回复 使用道具 举报
瑞雪
初级会员   /  发表于:2025-1-9 15:49:11
7#
Matthew.Xue 发表于 2025-1-9 09:20
注意,不管是从设计器的ui界面设置打印配置,还是从代码设置printInfo,它们本质上都是printInfo,是同一 ...

好的,了解了,谢谢啦
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-1-10 11:57:01
8#
好的,那就先结贴了,后续有其他问题的话随时开新帖提问哈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部