From 24830cb70bf983f78d0a873f02c854574592a95c Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 15 Nov 2022 16:45:28 +0300 Subject: [PATCH 1/3] [DE] Send print settings to sdk. Enable print preview only for desktop. --- .../main/app/controller/Main.js | 2 +- .../main/app/controller/Print.js | 33 +++++++++---------- .../main/app/view/FileMenuPanels.js | 5 +-- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 31b233d18..813a2089f 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -1494,7 +1494,7 @@ define([ } this.appOptions.canEditStyles = this.appOptions.canLicense && this.appOptions.canEdit; this.appOptions.canPrint = (this.permissions.print !== false); - this.appOptions.canPreviewPrint = this.appOptions.canPrint && !Common.Utils.isMac; + this.appOptions.canPreviewPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp; this.appOptions.canRename = this.editorConfig.canRename; this.appOptions.buildVersion = params.asc_getBuildVersion(); this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave); diff --git a/apps/documenteditor/main/app/controller/Print.js b/apps/documenteditor/main/app/controller/Print.js index d92d4e893..8ae19b397 100644 --- a/apps/documenteditor/main/app/controller/Print.js +++ b/apps/documenteditor/main/app/controller/Print.js @@ -42,14 +42,10 @@ define([ ], initialize: function() { - var value = Common.localStorage.getItem("de-print-settings-range"); - value = (value!==null) ? parseInt(value) : Asc.c_oAscPrintType.ActiveSheets; - this.adjPrintParams = new Asc.asc_CAdjustPrint(); - this.adjPrintParams.asc_setPrintType(value); - this._state = { - lock_doc: false + lock_doc: false, + firstPrintPage: 0 }; this._navigationPreview = { @@ -119,6 +115,7 @@ define([ } if (res.length>0) { // me.adjPrintParams.asc_setPages(res); + me._state.firstPrintPage = res[0]; return true; } } @@ -135,8 +132,6 @@ define([ var eventname = (/Firefox/i.test(navigator.userAgent))? 'DOMMouseScroll' : 'mousewheel'; this.printSettings.$previewBox.on(eventname, _.bind(this.onPreviewWheel, this)); - - this.fillPrintOptions(); }, setMode: function (mode) { @@ -224,23 +219,14 @@ define([ } }, - fillPrintOptions: function(props) { - // fill page numbers, copies, collated - var panel = this.printSettings; - panel.cmbRange.setValue(this.adjPrintParams.asc_getPrintType()); - panel.inputPages.setValue(''); // pages numbers - }, - comboRangeChange: function(combo, record) { if (record.value === -1) { var me = this; setTimeout(function(){ me.printSettings.inputPages.focus(); }, 50); - // this.adjPrintParams.asc_setPrintType(record.value) } else { this.printSettings.inputPages.setValue(''); - this.adjPrintParams.asc_setPrintType(record.value) } this.printSettings.inputPages.showError(); }, @@ -501,8 +487,19 @@ define([ this.isInputFirstChange = true; return; } + if (this.printSettings.cmbRange.getValue()==='all') + this._state.firstPrintPage = 0; + else if (this.printSettings.cmbRange.getValue()==='current') + this._state.firstPrintPage = this._navigationPreview.currentPage; + this._isPrint = print; + this.adjPrintParams.asc_setNativeOptions({ + pages: this.printSettings.cmbRange.getValue()===-1 ? this.printSettings.inputPages.getValue() : this.printSettings.cmbRange.getValue(), + paperSize: this._state.pgsize, //this.api.asc_getPageSize(this._state.firstPrintPage), + paperOrientation: this._state.pgorient ? 'portrait' : 'landscape' // this.api.asc_getPageOrient(this._state.firstPrintPage) ? 'portrait' : 'landscape' + }); + if ( print ) { var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86); opts.asc_setAdvancedOptions(this.adjPrintParams); @@ -521,7 +518,7 @@ define([ this.isInputFirstChange = false; if (value.length<1) - this.printSettings.cmbRange.setValue(Asc.c_oAscPrintType.EntireWorkbook); + this.printSettings.cmbRange.setValue('all'); else if (this.printSettings.cmbRange.getValue()!==-1) this.printSettings.cmbRange.setValue(-1); }, diff --git a/apps/documenteditor/main/app/view/FileMenuPanels.js b/apps/documenteditor/main/app/view/FileMenuPanels.js index 881050d70..1365fa8f9 100644 --- a/apps/documenteditor/main/app/view/FileMenuPanels.js +++ b/apps/documenteditor/main/app/view/FileMenuPanels.js @@ -2399,14 +2399,15 @@ define([ takeFocusOnClose: true, cls: 'input-group-nr', data: [ - { value: Asc.c_oAscPrintType.EntireWorkbook, displayValue: this.txtAllPages }, - { value: Asc.c_oAscPrintType.ActiveSheets, displayValue: this.txtCurrentPage }, + { value: 'all', displayValue: this.txtAllPages }, + { value: 'current', displayValue: this.txtCurrentPage }, { value: -1, displayValue: this.txtCustomPages } ], dataHint: '2', dataHintDirection: 'bottom', dataHintOffset: 'big' }); + this.cmbRange.setValue('all'); this.inputPages = new Common.UI.InputField({ el: $markup.findById('#print-txt-pages'), From 53298b4aab26772c20eed8f73fab39c4c95ec95d Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 15 Nov 2022 17:47:41 +0300 Subject: [PATCH 2/3] [DE] Fix translation --- .../main/app/controller/Print.js | 4 +-- .../main/app/view/FileMenuPanels.js | 16 +++++----- apps/documenteditor/main/locale/en.json | 30 +++++++++++++++++++ 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/apps/documenteditor/main/app/controller/Print.js b/apps/documenteditor/main/app/controller/Print.js index 8ae19b397..d6acb6ee5 100644 --- a/apps/documenteditor/main/app/controller/Print.js +++ b/apps/documenteditor/main/app/controller/Print.js @@ -114,7 +114,6 @@ define([ } } if (res.length>0) { - // me.adjPrintParams.asc_setPages(res); me._state.firstPrintPage = res[0]; return true; } @@ -492,14 +491,13 @@ define([ else if (this.printSettings.cmbRange.getValue()==='current') this._state.firstPrintPage = this._navigationPreview.currentPage; - this._isPrint = print; - this.adjPrintParams.asc_setNativeOptions({ pages: this.printSettings.cmbRange.getValue()===-1 ? this.printSettings.inputPages.getValue() : this.printSettings.cmbRange.getValue(), paperSize: this._state.pgsize, //this.api.asc_getPageSize(this._state.firstPrintPage), paperOrientation: this._state.pgorient ? 'portrait' : 'landscape' // this.api.asc_getPageOrient(this._state.firstPrintPage) ? 'portrait' : 'landscape' }); + this._isPrint = print; if ( print ) { var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86); opts.asc_setAdvancedOptions(this.adjPrintParams); diff --git a/apps/documenteditor/main/app/view/FileMenuPanels.js b/apps/documenteditor/main/app/view/FileMenuPanels.js index 1365fa8f9..92fc8b1ed 100644 --- a/apps/documenteditor/main/app/view/FileMenuPanels.js +++ b/apps/documenteditor/main/app/view/FileMenuPanels.js @@ -2485,10 +2485,10 @@ define([ '
  • ', '
    <%= scope.getDisplayValue(item) %>
    ', '<% if (item.size !== null) { %>
    ' + - '' + - '
    ' + - '' + - '
    ' + + '' + + '
    ' + + '' + + '
    ' + '<% } %>', '<% }); %>' ].join('')), @@ -2648,10 +2648,10 @@ define([ txtLandscape: 'Landscape', txtCustom: 'Custom', txtMargins: 'Margins', - txtTop: 'Top:', - txtBottom: 'Bottom:', - txtLeft: 'Left:', - txtRight: 'Right:', + txtTop: 'Top', + txtBottom: 'Bottom', + txtLeft: 'Left', + txtRight: 'Right', txtPage: 'Page', txtOf: 'of {0}', txtPageNumInvalid: 'Page number invalid', diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 303e6e092..e27028544 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -951,6 +951,9 @@ "DE.Controllers.Statusbar.textTrackChanges": "The document is opened with the Track Changes mode enabled", "DE.Controllers.Statusbar.tipReview": "Track changes", "DE.Controllers.Statusbar.zoomText": "Zoom {0}%", + "DE.Controllers.Print.txtCustom": "Custom", + "DE.Controllers.Print.txtPrintRangeInvalid": "Invalid print range", + "DE.Controllers.Print.textMarginsLast": "Last Custom", "DE.Controllers.Toolbar.confirmAddFontName": "The font you are going to save is not available on the current device.
    The text style will be displayed using one of the system fonts, the saved font will be used when it is available.
    Do you want to continue?", "DE.Controllers.Toolbar.dataUrl": "Paste a data URL", "DE.Controllers.Toolbar.notcriticalErrorTitle": "Warning", @@ -2384,6 +2387,33 @@ "DE.Views.ParagraphSettingsAdvanced.tipTop": "Set top border only", "DE.Views.ParagraphSettingsAdvanced.txtAutoText": "Auto", "DE.Views.ParagraphSettingsAdvanced.txtNoBorders": "No borders", + "DE.Views.PrintWithPreview.txtPrint": "Print", + "DE.Views.PrintWithPreview.txtPrintPdf": "Print to PDF", + "DE.Views.PrintWithPreview.txtPrintRange": "Print range", + "DE.Views.PrintWithPreview.txtCurrentPage": "Current page", + "DE.Views.PrintWithPreview.txtAllPages": "All pages", + "DE.Views.PrintWithPreview.txtSelection": "Selection", + "DE.Views.PrintWithPreview.txtCustomPages": "Custom print", + "DE.Views.PrintWithPreview.txtPageSize": "Page size", + "DE.Views.PrintWithPreview.txtPageOrientation": "Page orientation", + "DE.Views.PrintWithPreview.txtPortrait": "Portrait", + "DE.Views.PrintWithPreview.txtLandscape": "Landscape", + "DE.Views.PrintWithPreview.txtCustom": "Custom", + "DE.Views.PrintWithPreview.txtMargins": "Margins", + "DE.Views.PrintWithPreview.txtTop": "Top", + "DE.Views.PrintWithPreview.txtBottom": "Bottom", + "DE.Views.PrintWithPreview.txtLeft": "Left", + "DE.Views.PrintWithPreview.txtRight": "Right", + "DE.Views.PrintWithPreview.txtPage": "Page", + "DE.Views.PrintWithPreview.txtOf": "of {0}", + "DE.Views.PrintWithPreview.txtPageNumInvalid": "Page number invalid", + "DE.Views.PrintWithPreview.txtPages": "Pages", + "DE.Views.PrintWithPreview.textMarginsLast": "Last Custom", + "DE.Views.PrintWithPreview.textMarginsNormal": "Normal", + "DE.Views.PrintWithPreview.textMarginsUsNormal": "US Normal", + "DE.Views.PrintWithPreview.textMarginsNarrow": "Narrow", + "DE.Views.PrintWithPreview.textMarginsModerate": "Moderate", + "DE.Views.PrintWithPreview.textMarginsWide": "Wide", "DE.Views.RightMenu.txtChartSettings": "Chart settings", "DE.Views.RightMenu.txtFormSettings": "Form Settings", "DE.Views.RightMenu.txtHeaderFooterSettings": "Header and footer settings", From c4536c080706d74847fb0014b0180e9daa18b6b7 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 15 Nov 2022 17:54:09 +0300 Subject: [PATCH 3/3] [PE] Add paper size. Send print settings to sdk. Enable print preview only for desktop. --- .../main/app/controller/Main.js | 2 +- .../main/app/controller/Print.js | 24 ++----- .../main/app/view/FileMenuPanels.js | 65 ++++++++++++++++++- apps/presentationeditor/main/locale/en.json | 13 ++++ 4 files changed, 83 insertions(+), 21 deletions(-) diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index a967c5918..595901701 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -1165,7 +1165,7 @@ define([ console.log("Obsolete: The 'chat' parameter of the 'customization' section is deprecated. Please use 'chat' parameter in the permissions instead."); } this.appOptions.canPrint = (this.permissions.print !== false); - this.appOptions.canPreviewPrint = this.appOptions.canPrint && !Common.Utils.isMac; + this.appOptions.canPreviewPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp; this.appOptions.canRename = this.editorConfig.canRename; this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave); this.appOptions.forcesave = this.appOptions.canForcesave; diff --git a/apps/presentationeditor/main/app/controller/Print.js b/apps/presentationeditor/main/app/controller/Print.js index 3f3938aa4..fb2e54e80 100644 --- a/apps/presentationeditor/main/app/controller/Print.js +++ b/apps/presentationeditor/main/app/controller/Print.js @@ -42,11 +42,7 @@ define([ ], initialize: function() { - var value = Common.localStorage.getItem("pe-print-settings-range"); - value = (value!==null) ? parseInt(value) : Asc.c_oAscPrintType.ActiveSheets; - this.adjPrintParams = new Asc.asc_CAdjustPrint(); - this.adjPrintParams.asc_setPrintType(value); this._state = {}; @@ -113,7 +109,6 @@ define([ } } if (res.length>0) { - // me.adjPrintParams.asc_setPages(res); return true; } } @@ -129,8 +124,6 @@ define([ var eventname = (/Firefox/i.test(navigator.userAgent))? 'DOMMouseScroll' : 'mousewheel'; this.printSettings.$previewBox.on(eventname, _.bind(this.onPreviewWheel, this)); - - this.fillPrintOptions(); }, setMode: function (mode) { @@ -146,23 +139,14 @@ define([ return this; }, - fillPrintOptions: function(props) { - // fill page numbers, copies, collated - var panel = this.printSettings; - panel.cmbRange.setValue(this.adjPrintParams.asc_getPrintType()); - panel.inputPages.setValue(''); // pages numbers - }, - comboRangeChange: function(combo, record) { if (record.value === -1) { var me = this; setTimeout(function(){ me.printSettings.inputPages.focus(); }, 50); - // this.adjPrintParams.asc_setPrintType(record.value) } else { this.printSettings.inputPages.setValue(''); - this.adjPrintParams.asc_setPrintType(record.value) } this.printSettings.inputPages.showError(); }, @@ -307,6 +291,12 @@ define([ if (this._navigationPreview.pageCount<1) return; + var rec = this.printSettings.cmbPaperSize.getSelectedRecord(); + this.adjPrintParams.asc_setNativeOptions({ + pages: this.printSettings.cmbRange.getValue()===-1 ? this.printSettings.inputPages.getValue() : this.printSettings.cmbRange.getValue(), + paperSize: rec ? rec.size : null + }); + this._isPrint = print; if ( print ) { var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86); @@ -326,7 +316,7 @@ define([ this.isInputFirstChange = false; if (value.length<1) - this.printSettings.cmbRange.setValue(Asc.c_oAscPrintType.EntireWorkbook); + this.printSettings.cmbRange.setValue('all'); else if (this.printSettings.cmbRange.getValue()!==-1) this.printSettings.cmbRange.setValue(-1); }, diff --git a/apps/presentationeditor/main/app/view/FileMenuPanels.js b/apps/presentationeditor/main/app/view/FileMenuPanels.js index f02b56ff3..9e727858e 100644 --- a/apps/presentationeditor/main/app/view/FileMenuPanels.js +++ b/apps/presentationeditor/main/app/view/FileMenuPanels.js @@ -1839,6 +1839,8 @@ define([ '<%= scope.txtPages %>', '', '', + '', + '', '', '