Automatiser l’envoi d’une présentation Google Slides au format PDF

Dans le cadre de projets collaboratifs ou de présentations professionnelles, il est souvent nécessaire de partager des supports avec plusieurs interlocuteurs. Google Slides propose une fonctionnalité de partage intégré permettant aux utilisateurs d’accéder directement à la présentation en ligne. Cette solution est généralement suffisante dans des cas tels que :

  • Collaborer en temps réel sur une présentation.
  • Permettre des mises à jour dynamiques visibles immédiatement par tous les utilisateurs.
  • Éviter les envois multiples et les versions obsolètes.

Cependant, il arrive que cette méthode ne soit pas adaptée, par exemple lorsque :

  • Les destinataires n’ont pas de comptes associés au service de collaboration.
  • Vous souhaitez envoyer un document figé, sans possibilité de modification.
  • Une version PDF est explicitement demandée pour garantir une compatibilité universelle.

Dans ces cas précis, l’envoi de la présentation au format PDF devient une solution pratique. Automatiser ce processus vous permet non seulement de gagner du temps, mais aussi d’éviter des erreurs fréquentes telles que des adresses incorrectes ou des doublons. Dans cet article, nous allons explorer un script qui répond à ce besoin : il transforme une présentation Google Slides en fichier PDF et l’envoie automatiquement à une liste d’adresses email définie dans un Google Sheet.

Fonctionnalités du script

Ce script réalisé avec Google Apps Script se distingue par sa simplicité et son efficacité. Voici ce qu’il permet de faire :

  1. Récupérer la présentation Google Slides active.
  2. Demander à l’utilisateur l’URL d’un Google Sheet contenant une feuille nommée Emails.
  3. Lire et valider les adresses email uniques présentes dans la colonne A de cette feuille.
  4. Convertir la présentation en un fichier PDF.
  5. Envoyer le PDF à chaque adresse email valide.
  6. Informer l’utilisateur via des messages de confirmation ou d’erreur.

Le code

Voici le code complet du script :

/**
 * Envoie la présentation Google Slides active au format PDF à une liste d'emails 
 * spécifiée dans un Google Sheet. L'utilisateur doit fournir l'URL du Google Sheet.
 *
 * @author Fabrice Faucheux
 */
function envoyerPresentationActiveEnPDF() {
  try {
    // Récupérer la présentation Google Slides active.
    const presentation = SlidesApp.getActivePresentation();
    if (!presentation) {
      throw new Error("Aucune présentation Google Slides n'est active.");
    }

    // Récupérer l'ID et le nom de la présentation.
    const presentationId = presentation.getId();
    const presentationName = presentation.getName();

    // Demander à l'utilisateur l'URL du Google Sheet contenant les emails.
    const feuilleCalculUrl = Browser.inputBox("Entrez l'URL du Google Sheet contenant les emails :", Browser.Buttons.OK_CANCEL);
    if (feuilleCalculUrl === "cancel") return; // Annuler si l'utilisateur clique sur "Annuler".

    // Ouvrir le Google Sheet et vérifier l'existence de la feuille "Emails".
    const feuilleCalcul = SpreadsheetApp.openByUrl(feuilleCalculUrl);
    const feuille = feuilleCalcul.getSheetByName("Emails");
    if (!feuille) {
      throw new Error("La feuille 'Emails' n'existe pas dans le tableur.");
    }

    // Récupérer les emails uniques, supprimer les doublons et valider les emails.
    const emails = [...new Set(feuille.getRange("A:A").getValues().flat())]
      .filter(email => email && validateEmail(email));
    if (emails.length === 0) {
      throw new Error("Aucun email valide trouvé dans la feuille 'Emails'.");
    }

    // Convertir la présentation en PDF.
    const pdfBlob = DriveApp.getFileById(presentationId).getBlob().setName(`${presentationName}.pdf`);

    // Envoyer le PDF à chaque adresse email.
    emails.forEach(email => {
      MailApp.sendEmail({
        to: email,
        subject: "Votre présentation Google Slides",
        body: "Bonjour,\n\nVeuillez trouver ci-joint votre présentation Google Slides au format PDF.\n\nCordialement,",
        attachments: [pdfBlob]
      });
    });

    // Message de confirmation.
    Browser.msgBox("La présentation a été envoyée avec succès au format PDF.");
  } catch (error) {
    // Gérer les erreurs.
    Browser.msgBox("Une erreur s'est produite : " + error.message);
    Logger.log(error.message);
  }
}

/**
 * Vérifie si une adresse email est valide.
 *
 * @param {string} email L'adresse email à vérifier.
 * @return {boolean} True si l'email est valide, false sinon.
 */
function validateEmail(email) {
  const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  return re.test(email);
}

/**
 * Ajoute un menu personnalisé dans Google Slides pour lancer le script.
 */
function onOpen() {
  SlidesApp.getUi()
    .createMenu("Envoyer PDF")
    .addItem("Envoyer la présentation", "envoyerPresentationActiveEnPDF")
    .addToUi();
}

Mise en œuvre pas à pas

1. Préparer la présentation Google Slides

• Ouvrez la présentation que vous souhaitez envoyer.

• Activez le script via Extensions > Apps Script.

2. Créer le Google Sheet contenant les emails

• Créez un fichier Google Sheet avec une feuille nommée Emails.

• Ajoutez les adresses email des destinataires dans la colonne A.

3. Ajouter le script

• Copiez le code ci-dessus dans l’éditeur Apps Script.

• Enregistrez et rechargez la présentation Google Slides.

4. Exécuter le script

• Accédez au menu personnalisé Envoyer PDF dans Google Slides.

• Suivez les instructions pour entrer l’URL du Google Sheet.

Points forts

  • Validation des emails : Le script élimine les doublons et les emails invalides.
  • Personnalisation : Vous pouvez adapter le contenu des emails et ajouter des pièces jointes supplémentaires.
  • Automatisation : Une fois le processus lancé, tout est automatisé, du traitement des données à l’envoi des emails.

Ce script illustre parfaitement comment Google Apps Script peut être utilisé pour simplifier des tâches répétitives, comme l’envoi de fichiers à plusieurs destinataires. Bien que le partage direct de Google Slides suffise dans de nombreux cas, ce type d’automatisation répond aux besoins spécifiques où des fichiers PDF sont préférables.

Si cet article vous a été utile, explorez d’autres tutoriels sur L’atelier informatique pour optimiser vos processus !