Comment mettre à l’échelle des images dans des documents DOCX avec la macro ONLYOFFICE

10 octobre 2024By Dasha

Récemment, nous avons créé une macro pour mettre à l’échelle des images dans l’Éditeur de présentations. Pour continuer avec nos macros de modification d’images, nous allons créer une macro pour modifier facilement les images dans les documents. Cette macro simple nous permettra d’effectuer des ajustements tels que le redimensionnement, le recadrage et bien d’autres choses encore. Voyons comment construire cette macro simple.

An ONLYOFFICE macro to modify images in documents

Construction de la macro

  const processImage = (images, width = 100, height = 100) => {
    images.forEach((element) => {

Nous commençons par définir la fonction processImage(), qui gère la modification des images dans le document. Cette fonction itère sur chaque image du document à l’aide de la méthode forEach().

        element.SetSize(width * 36000, height * 36000);
        // Optional settings for flipping and wrapping
        //  element.SetVertFlip(true);
        //  element.SetHorFlip(true);
        //  element.SetWrappingStyle("inline");

Dans la boucle forEach, nous utilisons la méthode SetSize() pour redimensionner chaque image à la largeur et à la hauteur souhaitées. Vous pouvez ajuster les paramètres de largeur et de hauteur selon vos préférences, mais s’ils restent inchangés, ils sont par défaut de 100 x 100 mm.

Remarque : les dimensions utilisées dans la méthode SetSize() sont exprimées en unités métriques anglaises (UME). La largeur et la hauteur que vous indiquez en millimètres sont multipliées par 36 000 pour les convertir en UEM. La transmission des valeurs en (mm) sans conversion ne fonctionnera pas.

  const document = Api.GetDocument();
  const allImg = document.GetAllImages();

Ensuite, passons à la partie principale de la macro. Nous commençons par récupérer le document dans la variable document et par stocker toutes les images du document dans le tableau allImg.

  if (!allImg || allImg.length === 0) {
    console.error(
      `No images found in your document. Add some images and try again.`
    );
    return;
  }

Puis, nous exécutons une boucle if pour nous assurer que le tableau allImg existe et qu’il n’est pas vide. Si l’une des conditions n’est pas remplie, nous arrêtons l’exécution de la macro.

  processImage(allImg);

Enfin, nous appelons la fonction processImage() (définie ci-dessus), en lui passant le tableau allImg.

Code complet de la macro

Voici le code de la macro complète :

(function () {
  const processImage = (images, width = 100, height = 100) => {
    images.forEach((element) => {
      try {
        // Resizes the image to the passed height and width. The *36000 converts to EMUs (Office Open XML unit).
        element.SetSize(width * 36000, height * 36000);
        // Optional settings for flipping and wrapping
        //  element.SetVertFlip(true);
        //  element.SetHorFlip(true);
        //  element.SetWrappingStyle("inline");   //other available wrapping styles : "square" | "tight" | "through" | "topAndBottom" | "behind" | "inFront"
      } catch (error) {
        console.error(
          `Could not tweak one or more images. Please check your document once.`
        );
      }
    });
  };

  const document = Api.GetDocument();
  const allImg = document.GetAllImages();

  if (!allImg || allImg.length === 0) {
    console.error(
      `No images found in your document. Add some images and try again.`
    );
    return;
  }

  processImage(allImg);
})();

Voyons maintenant comment fonctionne notre macro.

Voilà, c’est fait ! Une simple macro qui vous permet de modifier les images dans vos documents texte. L’API d’ONLYOFFICE est un outil puissant, capable de gérer une grande variété de tâches et d’ouvrir des possibilités infinies pour développer plus de macros et de plugins. Avec cette API, vous pouvez exploiter toute la puissance d’ONLYOFFICE pour améliorer votre productivité et rationaliser vos flux de travail.

Si vous avez des questions ou des concepts innovants, nous vous encourageons à les partager avec nous. Nous apprécions votre contribution et nous nous réjouissons de collaborer avec vous. Nous vous souhaitons bonne chance dans vos projets exploratoires !

Créez votre compte ONLYOFFICE gratuit

Affichez, modifiez et coéditez des documents texte, feuilles de calcul, diapositives, formulaires et fichiers PDF en ligne.