Browse Source

feat(Embedding): create backend option (#661), also, give warning when PDF is created on Canvas background.

sschmid 5 năm trước cách đây
mục cha
commit
49dd902f41
2 tập tin đã thay đổi với 21 bổ sung1 xóa
  1. 16 1
      demo/index.js
  2. 5 0
      src/OpenSheetMusicDisplay/OpenSheetMusicDisplay.ts

+ 16 - 1
demo/index.js

@@ -115,6 +115,7 @@ import { OpenSheetMusicDisplay } from '../src/OpenSheetMusicDisplay/OpenSheetMus
         var paramMeasureRangeStart = findGetParameter('measureRangeStart');
         var paramMeasureRangeEnd = findGetParameter('measureRangeEnd');
         var paramPageFormat = findGetParameter('pageFormat');
+        var paramBackendType = findGetParameter('backendType');
 
         showHeader = (paramShowHeader !== '0');
         if (paramEmbedded !== undefined) {
@@ -142,6 +143,20 @@ import { OpenSheetMusicDisplay } from '../src/OpenSheetMusicDisplay/OpenSheetMus
             measureRangeStart = measureRangeEnd;
         }
         var pageFormat = paramPageFormat ? paramPageFormat : "Endless";
+        var backendType = (paramBackendType && paramBackendType.toLowerCase) ? paramBackendType : "svg";
+        
+        // set the backendSelect debug controls dropdown menu selected item
+        //console.log("true: " + backendSelect && backendType.toLowerCase && backendType.toLowerCase() === "canvas");
+        // TODO somehow backendSelect becomes undefined here:
+        /*if (backendSelect && backendType.toLowerCase && backendType.toLowerCase() === "canvas") {
+            console.log("here1");
+            for (var i=0; i<backendSelect.options.length; i++) {
+                if (backendSelect.options[i].value.toLowerCase() === "canvas") {
+                    backendSelect.selectedIndex = i;
+                }
+            }
+            backendSelect.value = "Canvas";
+        }*/
 
         divControls = document.getElementById('divControls');
         zoomControls = document.getElementById('zoomControls');
@@ -300,7 +315,7 @@ import { OpenSheetMusicDisplay } from '../src/OpenSheetMusicDisplay/OpenSheetMus
         // Create OSMD object and canvas
         openSheetMusicDisplay = new OpenSheetMusicDisplay(canvas, {
             autoResize: true,
-            backend: backendSelect.value,
+            backend: backendType,
             //backend: "canvas",
             disableCursor: false,
             drawingParameters: compactMode ? "compact" : "default", // try compact (instead of default)

+ 5 - 0
src/OpenSheetMusicDisplay/OpenSheetMusicDisplay.ts

@@ -654,6 +654,11 @@ export class OpenSheetMusicDisplay {
      * @param pdfName if no name is given, the composer and title of the piece will be used
      */
     public createPdf(pdfName: string = undefined): void {
+        if (this.backendType !== BackendType.SVG) {
+            console.log("[OSMD] osmd.createPdf(): Warning: createPDF is only supported for SVG background for now, not for Canvas." +
+                " Please use osmd.setOptions({backendType: SVG}).");
+            return;
+        }
 
         if (pdfName === undefined) {
             pdfName = this.sheet.FullNameString + ".pdf";