Gestion des lettres d’offre des employés

Bannière principale de cas dutilisation

Les lettres d’offre aux employés sont l’une des premières expériences que les employés ont avec votre organisation. Par conséquent, vous voulez vous assurer que vos lettres d’offre sont conformes à la marque, mais vous ne voulez pas avoir à créer une lettre dans votre logiciel de traitement de texte à partir de zéro à chaque fois. Les API Adobe Acrobat Services offrent un moyen rapide, facile et efficace de gérer les éléments clés de la génération et de la distribution de lettres d'offre aux nouveaux employés.

Ce que vous pouvez apprendre

Ce tutoriel pratique explique la configuration d’un projet Node Express qui affiche un formulaire web à remplir par un utilisateur avec des détails sur les employés. Ces détails utilisent Acrobat Services sur le Web pour générer une lettre d'offre en tant que PDF qui peut être remise à un client pour sa signature à l'aide de l'API Adobe Sign.

Ressources et API pertinentes

Prise en main

Node.js est la plateforme de programmation. Il est fourni avec un ensemble énorme de bibliothèques, telles que le serveur web Express. Téléchargez Node.js et suivez les étapes pour installer cet environnement de développement open source exceptionnel.

Pour utiliser l'API Document Generation Adobe dans Node.js, accédez au site API Document Generation pour accéder à votre compte ou créez-en un nouveau. Votre compte est gratuit pendant six mois, puis payé à l'utilisation pour seulement 0,05 $ par transaction de document, de sorte que vous pouvez l'essayer sans risque, puis ne payer qu'au fur et à mesure que votre entreprise se développe.

Après vous être connecté à Adobe Developer Console, cliquez sur Créer un projet. Le projet est nommé « Projet 1 » par défaut. Cliquez sur le bouton Modifier le projet et remplacez le nom par « Générateur de lettres d'offre ». Au centre de l'écran se trouve une section Prise en main de votre nouveau projet. Pour activer la sécurité sur votre projet, procédez comme suit :

Cliquez sur Ajouter une API. Vous voyez un certain nombre d’API parmi lesquelles choisir. Dans la section Filtrer par produit, sélectionnez Document Cloud, puis cliquez sur Suivant.

À présent, générez des informations d’identification pour accéder à l’API. Les informations d'identification se présentent sous la forme d'un jeton Web JSON (JWT) : une norme ouverte pour une communication sécurisée. Si vous êtes familier avec JWT et que vous avez déjà généré des clés, vous pouvez télécharger votre clé publique ici. Vous pouvez également sélectionner Option 1 pour que l'Adobe génère les clés pour vous.

Capture décran de la génération des informations didentification

Cliquez sur le bouton Générer une paire de clés. Vous obtenez un fichier config.zip à télécharger. Décompressez le fichier d'archive. Il contient deux fichiers : certificate_pub.crt et private.key. Assurez-vous que ce dernier est sécurisé, car il contient vos informations d’identification privées et peut être utilisé pour générer des documents factices s’il est hors de votre contrôle.

Cliquez sur Suivant. Non, active l’accès à l’API PDF Generation. Dans l'écran Sélectionner des profils de produit, cochez la case Développeur des services Enterprise PDF, puis cliquez sur le bouton Enregistrer l'API configurée. Vous êtes maintenant prêt à commencer à utiliser l’API.

Configuration du projet

Configurez un projet Node pour exécuter votre code. Cet exemple utilise Visual Studio Code (code VS) comme éditeur. Créez un dossier appelé « Letter-generator » et ouvrez-le dans VS Code. Dans le menu Fichier, sélectionnez Terminal > Nouveau Terminal pour ouvrir un shell dans ce dossier. Vérifiez que le nœud est installé et sur votre chemin en entrant les informations suivantes :

node -v

Vous devriez voir la version du nœud que vous avez installée.

Maintenant que votre environnement de développement est installé, vous pouvez continuer et créer votre projet.

Tout d’abord, initialisez le projet à l’aide de Node Package Manager (npm). Tapez ce qui suit :

npm init

Des questions vous sont posées au sujet de votre projet Node. Vous pouvez ignorer la plupart de ces questions, mais assurez-vous que le nom du projet est « letter-generator » et que le point d’entrée est index.js. Sélectionnez Oui pour terminer l'initialisation du projet.

Vous avez maintenant un fichier package.json. Node utilise ce fichier pour organiser votre projet. Avant de créer index.js, vous devez ajouter des bibliothèques d’Adobe avec les éléments suivants :
commande :

npm install --save @adobe/documentservices-pdftools-node-sdk

Un nouveau dossier nommé node_modules doit être ajouté à votre projet. C'est dans ce dossier que toutes les bibliothèques (appelées dépendances dans Node) sont téléchargées. Le fichier package.json est également mis à jour avec une référence aux services Adobe PDF.

Vous souhaitez maintenant installer Express comme infrastructure web légère. Entrez la commande suivante :

npm install express –save

Comme précédemment, la section des dépendances de package.json est mise à jour en conséquence.

Création d’un modèle de lettre d’offre

Maintenant, dans la racine du projet, créez un fichier appelé « app.js ». Mettons le code de démarrage suivant à l’intérieur :

const express = require('express');
const bodyParser = require('body-parser');
const PDFToolsSdk = require('@adobe/documentservices-pdftools-node-sdk')
const path = require('path');
const app = express();
const port = 8000;
app.use(bodyParser.urlencoded({ extended: true }));
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname + '/index.html'));
});
app.post('/', (req, res) => {
console.log('Got body:', req.body);
res.sendStatus(200);
});
app.listen(port, () => {
console.log(`Candidate offer letter app listening on port ${port}!`)
});

Notez que l'itinéraire get renvoie un fichier index.html. Nous allons créer un fichier de HTML portant ce nom et le formulaire simple suivant. Vous pouvez ajouter des styles CSS et d’autres éléments de conception ultérieurement, à votre convenance. Ce formulaire prend les informations de base du candidat pour générer une lettre de bienvenue :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Offer Letter Generator</title>
</head>
<body>
<h1>Enter Candidate Details</h1>
<form action="" method="post">
<div>
<label for="firstname">First name: </label>
<input type="text" name="firstname" id="firstname" required>
</div>
<div>
<label for="lastname">Last name: </label>
<input type="text" name="lastname" id="lastname" required>
</div>
<div>
<label for="salary">Salary ($): </label>
<input type="number" name="salary" id="salary" required>
</div>
<div>
<label for="startdate">Start Date: </label>
<input type="date" name="startdate" id="startdate" required>
</div>
<div>
<input type="submit" value="Generate Letter">
</div>
</form>
</body>
</html>

Exécutez le serveur web avec la commande suivante :

node app.js

Vous devriez voir le message « Application de lettre d'offre de candidat à l'écoute sur le port 8000 ». Si vous ouvrez votre navigateur sur http://localhost:8000/, le formulaire doit se présenter comme suit :

Capture d’écran du formulaire web

Notez que le formulaire est publié sur lui-même. Si vous renseignez les données et cliquez sur Générer la lettre, les informations suivantes devraient s'afficher sur la console :

Got body: { firstname: 'John',
lastname: 'Doe',
salary: '887888',
startdate: '2021-04-01' }

Vous remplacez cette journalisation de la console par un appel de service Web à Acrobat Services. Tout d’abord, vous devez créer un modèle JSON des informations. Le format de ce modèle se présente comme suit :

{
    "offer_letter": {
    "firstname": "John",
    "lastname": "Doe",
    "salary": "887888",
    "startdate": "2021-04-01"
    }
}

Vous pouvez rendre ce modèle plus élaboré si vous le souhaitez, mais pour ce tutoriel, tenez-vous-en à cet exemple simple. Il n’y a pas de validation sur ce formulaire car cela sort du cadre de cet article. Pour convertir le corps de votre formulaire au modèle de données décrit ci-dessus, modifiez la méthode du gestionnaire app.post pour qu’elle contienne le code suivant :

app.post('/', (req, res) => {
const docModel = {'offer_letter': req.body};
generateLetter(docModel);
res.sendStatus(200);
});

La première ligne place vos données JSON au format souhaité. Vous allez maintenant transmettre ces données à une fonction generateLetter. Arrêtez votre serveur et collez le code suivant à la fin de app.js. Ce code prend un document Word comme modèle et remplit les balises d’emplacement avec les informations d’un document JSON.

// Letter generation function
function generateLetter(jsonDataForMerge) {
try {
// Initial setup, create credentials instance.
const credentials = PDFToolsSdk.Credentials
.serviceAccountCredentialsBuilder()
.fromFile("pdftools-api-credentials.json")
.build();
// Create an ExecutionContext using credentials
const executionContext = PDFToolsSdk.ExecutionContext.create(credentials);
// Create a new DocumentMerge options instance
const documentMerge = PDFToolsSdk.DocumentMerge,
documentMergeOptions = documentMerge.options,
options = new documentMergeOptions.DocumentMergeOptions(jsonDataForMerge,
documentMergeOptions.OutputFormat.PDF);
// Create a new operation instance using the options instance
const documentMergeOperation = documentMerge.Operation.createNew(options)
// Set operation input document template from a source file.
const input = PDFToolsSdk.FileRef.createFromLocalFile(
'resources/OfferLetter-Template.docx');
documentMergeOperation.setInput(input);
// Execute the operation and Save the result to the specified location.
documentMergeOperation.execute(executionContext)
.then(result => result.saveAsFile('output/OfferLetter.pdf'))
.catch(err => {
if(err instanceof PDFToolsSdk.Error.ServiceApiError
|| err instanceof PDFToolsSdk.Error.ServiceUsageError) {
console.log(
'Exception encountered while executing operation', err);
} else {
console.log(
'Exception encountered while executing operation', err);
}
});
} catch (err) {
console.log('Exception encountered while executing operation', err);
}
}

Il y a beaucoup de code à déballer. Commençons par la partie principale : le documentMergeOperation. Dans cette section, vous pouvez fusionner vos données JSON avec un modèle de document Word. Vous pouvez utiliser l'exemple sur le site Adobe comme référence, mais créons votre propre exemple simple. Ouvrez Word et créez un document vierge. Vous pouvez le personnaliser autant que vous le souhaitez, mais vous devez au moins disposer de quelque chose comme ceci :

Cher X,

Nous sommes ravis de vous offrir un poste de X $ par année. Votre date de début sera X.

Bienvenue

Enregistrez le document sous le nom « OfferLetter-Template.docx » dans un dossier appelé « resources » à la racine de votre projet. Notez les trois X dans le document. Ces X sont des espaces réservés temporaires pour vos informations JSON. Bien que vous puissiez utiliser une syntaxe spéciale pour remplacer ces espaces réservés, Adobe fournit un complément Word qui simplifie cette tâche. Pour installer le complément, accédez à l'Adobe Complément Word Document Generation Tagger.

Dans votre modèle de lettre d'offre, cliquez sur le nouveau bouton Génération de document. Un panneau latéral s’ouvre. Cliquez sur Commencer. Une zone de texte vous est fournie pour coller les exemples de données JSON. Copiez l’extrait de code « offer-data » du fichier JSON du haut dans la zone de texte. Elle doit se présenter comme suit :

Capture décran de la lettre et du code

Cliquez sur le bouton Générer des balises. Vous obtenez un menu déroulant de balises à insérer aux points appropriés dans le document. Mettez en surbrillance le premier X du document et sélectionnez prénom. Cliquez sur Insérer du texte et « Cher X » est remplacé par « Cher {{`offer_letter`.firstname}} ». Ce format de balise est correct pour documentMergeOperation. Continuez et ajoutez les trois balises restantes à l’emplacement Xs approprié. N’oubliez pas d’enregistrer OfferLetter-template.docx. Il devrait ressembler à ceci :

Bonjour {{`offer_letter`.firstname}} {{`offer_letter`.lastname}},

Nous sommes ravis de vous proposer un poste de {{`offer_letter`.salary}} $ par an. Votre date de début sera le {{`offer_letter`.startdate}}.

Bienvenue

Le modèle Word comporte désormais un balisage correspondant au format JSON. Par exemple, {{`offer_letter`.`firstname`}} au début du document Word est remplacé par la valeur dans la section « firstname » des données JSON.

Revenez à votre fonction generateLetter. Pour sécuriser votre appel REST, créez un nouveau fichier intitulé pdftools-api-credentials.json dans la racine du projet. Collez les données JSON suivantes et ajustez-les avec les détails de la section Compte de service (JWT) de votre console de développement.

{
"client_credentials": {
"client_id": "<YOUR_CLIENT_ID>",
"client_secret": "<YOUR_CLIENT_SECRET>"
},
"service_account_credentials": {
"organization_id": "<YOUR_ORGANIZATION_ID>",
"account_id": "<YOUR_TECHNICAL_ACCOUNT_ID>",
"private_key_file": "<PRIVATE_KEY_FILE_PATH>"
}
}
  • L'ID client, le secret client et l'ID d'organisation peuvent être copiés directement à partir de la section Informations d'identification de la console.

  • L'ID de compte est l'ID de compte technique.

  • Copiez le fichier private.key que vous avez généré précédemment dans le projet et entrez son nom dans la section private_key_file du
    fichier pdftools-api-credentials.json. Si vous le souhaitez, vous pouvez placer un chemin d’accès au fichier de clé privée ici. N'oubliez pas de le garder en sécurité car il peut être mal utilisé une fois hors de votre contrôle.

Pour générer un PDF avec les données JSON renseignées, revenez à votre formulaire web Saisir les détails du candidat et publiez des données. Cela prend un peu de temps car le document doit être téléchargé depuis l’Adobe, mais vous devriez avoir un fichier intitulé OfferLetter.pdf dans un nouveau dossier intitulé output.

Marche à suivre

C'est tout ! Ce n'est que le début. Si vous étudiez la section Avancé de l’onglet Génération du document du complément Word, vous remarquez que tous les marqueurs d’espace réservé ne proviennent pas des données JSON associées. Vous pouvez également ajouter des balises de signature. Ces balises vous permettent de prendre le document obtenu et de le charger sur Adobe Sign pour le remettre et le signer au nouvel employé. Lisez la section Prise en main de l’API Adobe Sign pour savoir comment procéder. Ce processus est similaire car vous utilisez des appels REST sécurisés avec un jeton JWT.

L'exemple de document unique fourni ci-dessus peut être utilisé comme base pour une application lorsqu'une organisation doit accélérer l'embauche saisonnière d'employés sur plusieurs sites. Comme nous l'avons démontré, le principal flux consiste à prendre les données des candidats par le biais d'une application en ligne. Les données sont utilisées pour remplir les champs d’une lettre d’offre et l’envoyer pour signature électronique.

Adobe Acrobat Services est gratuit pendant six mois, puis paiement à l'utilisation à seulement 0,05 $ par transaction de document, afin que vous puissiez l'essayer et adapter votre workflow de lettre d'offre au fur et à mesure que votre entreprise se développe. Pour commencer
pour créer vos propres modèles, inscrivez votre compte développeur.

recommendation-more-help
61c3404d-2baf-407c-beb9-87b95f86ccab