How can I print selected cells on different sheet together

I tried to print different sheet which i selected cell on the same pdf,
so I tried to rewrite webix.print().
It is fail because the print windows always showed the window show,
can you help me with th failure?
My print window show like

type or paste code here
let view = $$("ssheet");
                          let views = [];
                          let order = {};
                          let active = view._activeSheet;
                          
                          //var html = buildHtml($$("ssheet"));

                          
                          let doc = webix.html.create("div", {
                            "class": "webix_ssheet_print"
                          });
                          let options = {
                              "borderless": 1,
                              "data": "full",
                              "external": 1,
                              "fit": "page",
                              "footer": false,
                              "header": false,
                              "margin": {
                                "top": 72,
                                "bottom": 72,
                                "right": 72,
                                "left": 72
                              },
                              "mode": "portrait",
                              "paper": "A4",
                              "scroll": false,
                              "sheetnames": 0,
                              "sheets":[
                                '沖壓1',
                                '沖壓1模具成本'
                              ],
                              "size": {
                                "width": 8.27,
                                "height": 11.7
                              },
                              "skiprows": 0,
                              "trim": true,
                              "xCorrection": 1,
                              //"disabled": false
                          };

                          var baseIndex = view.$index;
                          var pageSize = getPageSize(options);
                          var sheets = options.sheets; // backward compatibility, options.data can be only "selection"
                          // "current" and "all" are deprecated

                          var data = options.data;
                          if (!sheets || data == "current" || data == "selection") {
                            sheets = ['sheet1,'sheet2'];
                          } else if (typeof sheets == "string") sheets = [sheets];else if (sheets === true || data == "all") sheets = view._sheets.map(function (sheet) {
                            return sheet.name;
                          });
                          
                          sheets = sheets.filter(function (sheet) {
                            return isVisible(view, sheet);
                          });
                          sheets.forEach(function (name, i) {
                            view.$index = baseIndex + "_" + i;
                            var grid = view.$$("cells");
                            view.showSheet(name);
                            if(name == "sheet1"){
                              grid.addSelectArea({
                                  row: 2,
                                  column: 2
                              }, {
                                  row: 46,
                                  column: 13
                              });
                            }else{
                              grid.addSelectArea({
                                  row: 1,
                                  column: 1
                              }, {
                                  row: 53,
                                  column: 20
                              });
                            }
                            
                            var prefix = "wss_" + view.$index;
                            
                            view._print = true;
                            var table = grid.$customPrint(options, true);
                            delete view._print;
                            var tbl = table.firstChild;
                            
                            var _tbl$children = _slicedToArray(tbl.children, 2),
                                header = _tbl$children[0],
                                body = _tbl$children[1];

                            var topSplit = header.childElementCount;
                            var sheetName = options.sheetnames ? 20 : 0;
                            var splitHeight = sheetName;

                            for (var s = 1; s <= topSplit; s++) {
                              splitHeight += grid.getItem(s).$height || grid.config.rowHeight;
                            }

                            if (splitHeight > pageSize.height / 4) for (var _i = topSplit - 1; _i >= 0; _i--) {
                              if (body.firstChild) webix.html.insertBefore(header.children[_i], body.firstChild);else body.appendChild(header.children[_i]);
                            }
                            if (sheetName) {
                              var sheetNode = webix.html.create("tr", {
                                class: "webix_ssheet_sheetname"
                              }, "<td>".concat(name, ":</td>"));
                              if (header.firstChild) webix.html.insertBefore(sheetNode, header.firstChild);else header.appendChild(sheetNode);
                            } //for empty sheet we don't have any HTML


                            var node = table.firstChild;
                            if (node && name != active) {
                              webix.html.removeCss(node, "wss_" + baseIndex);
                              webix.html.addCss(node, prefix);
                            }

                            doc.appendChild(table);
                            if (options.external) for (var id in view.views._pull) {
                              var innerView = view.views._pull[id];

                              if (innerView.type == "image") {
                                (function () {
                                  var img = webix.html.create("IMG", {
                                    src: innerView.data,
                                    width: (innerView.config.width*2 || 500) + "px",
                                    height: (innerView.config.height*2 || 300) + "px"
                                  });
                                  var promise = webix.promise.defer();
                                  views.push(promise);

                                  img.onload = function () {
                                    return promise.resolve();
                                  };

                                  doc.appendChild(img);
                                })();
                              } else {
                                var externalUI = webix.$$(id).getBody();

                                if (externalUI.$customPrint) {
                                  var customPrint = externalUI.$customPrint({
                                    size: options.size
                                  }, true);

                                  if (customPrint.then) {
                                    order[views.length] = doc.childElementCount;
                                    views.push(customPrint);
                                  } else doc.appendChild(customPrint);
                                } else doc.appendChild(printInnerView(webix.$$(id).getBody()));
                              }
                            }

                            if (i + 1 < view._sheets.length) {
                              var br = webix.html.create("DIV", {
                                "class": "webix_print_pagebreak"
                              });
                              doc.appendChild(br);
                            }
                          });
                          view.$index = baseIndex;
                          view.showSheet(active);
                          var html = doc;
                          var promise = webix.promise.defer();
                          
                          
                          webix.promise.all(views).then(function (res) {
                            
                            var keys = Object.keys(order).sort(view.$$("cells").data.sorting.as.int);
                            for (var i = keys.length - 1; i >= 0; i--) {
                              var index = keys[i];
                              doc.insertBefore(res[index], doc.childNodes[order[index]]);
                            }
                           
                            
                            webix.html.insertBefore(html, true, document.body);
                            
                            
                            window.print();
                           
                            _cleanHtml(view, html);

                            promise.resolve();
                          });

@MariyaDemy , can you help me?

@AlenaLisava can you help me?

Good day @coony,

You were right about need of customization. However, it is best to customize spreadsheet.$customPrint: Code Snippet

hi @NatashaS ,
my webix version is 10.0, and I tried to add a button on the subbar to print what I need. But it also failed. Can you help me? :pleading_face:
My snippet :Code Snippet (webix.com)