Interceptor-Beispiel: Eigene Schriftarten für Annotationen aktivieren

Schriftarten könnten prinzipiell per Interceptor-API ergänzt werden, allerdings müssen diese dann auf allen unterstützten Plattformen zur Verfügung stehen. Hier habe ich mir eine kreative Schriftart beispielhaft bei mir im System hinterlegt:

var addFontExample = {
     updateEditorConfiguration: async (instance, info, config) => {
          instance.UI.Fonts.addAnnotationFont("Saiyan Sans");
    }
}

window.ed.registerInterceptor(addFontExample);

Der Interceptor kann dann wie üblich als .js-Datei gespeichert und hinterlegt werden:

File

Danach steht die Schriftart für Annotationen auf meinem System zu Verfügung (sobald ich mich neu im enaio angemeldet bzw. die Seite von enaio Web neu geladen habe):

1 „Gefällt mir“

Hallo @rk

ich hätte hierzu eine kurze Frage.

Ich habe für unser ED folgenden js Code als Interceptor eingetragen, damit wir die Schriftart Arial in der Software verfügbar haben:

AddFont.js

var addFontExample = {
updateEditorConfiguration: async (instance, info, config) => {
instance.UI.Fonts.addAnnotationFont(„Arial“);
}
}

window.ed.registerInterceptor(addFontExample);

Nun wollte ich mit folgendem Code Arial als Standard Schrift, allgemein setzen. Das wird aber im System leider nicht umgesetzt, es bleibt auf Helvetica stehen, Arial ist aber in der Liste der Schriftarten aufgeführt, der Import hat also geklappt:

DefaultFont.js

var defaultFontAllFreeTexts = {
updateEditorConfiguration: async (instance, info, config) => {
const { documentViewer, Annotations } = instance.Core;

    ["AnnotationCreateFreeText", "AnnotationCreateFreeText2", "AnnotationCreateFreeText3", "AnnotationCreateFreeText4"].forEach(toolName => {
        documentViewer.getTool(toolName).setStyles(currentStyle => ({
            FontSize: '12pt',
            Font: "Arial"
        }));        
    })
}

}

window.ed.registerInterceptor(defaultFontAllFreeTexts);

Über eine Antwort würde ich mich sehr freuen.

Mit freundlichen Grüßen,

Max Bitzer

Hallo @MaxBitzer,

ich hatte erwartet das dein Beispiel gehen müsste, aber es scheint nicht zu greifen. Du kannst aber die default Werte entsprechend anpassen.

Ich verwende hier den initEditorConfiguration, da dieser nur ein mal ausgeführt wird. Das Beispiel sollte aber in beiden Varianten gehen.

var addFontExample = {
  initEditorConfiguration: async (instance) => {
    const { documentViewer } = instance.Core;
    instance.UI.Fonts.addAnnotationFont("Arial");
    [
      "AnnotationCreateFreeText",
      "AnnotationCreateFreeText2",
      "AnnotationCreateFreeText3",
      "AnnotationCreateFreeText4",
    ].forEach((toolName) => {
      const tool = documentViewer.getTool(toolName);
      tool.defaults.Font = "Arial";
      tool.defaults.FontSize = "10pt";
    });
  },
};

window.ed.registerInterceptor(addFontExample);

Grüsse
Uli

1 „Gefällt mir“

Hallo @rk

vielen Dank für die schnelle Rückmeldung, das hat auf Anhieb funktioniert.

LG

Max Bitzer

1 „Gefällt mir“