<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>java rest api on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/fr/tag/java-rest-api/</link>
    <description>Recent content in java rest api on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fr</language>
    <lastBuildDate>Wed, 23 Sep 2026 13:04:19 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/fr/tag/java-rest-api/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ajouter une superposition de texte à un GIF en utilisant REST en Java</title>
      <link>https://blog-qa.groupdocs.cloud/fr/watermark/add-text-overlay-to-gif-using-rest-in-java/</link>
      <pubDate>Wed, 23 Sep 2026 13:04:19 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/fr/watermark/add-text-overlay-to-gif-using-rest-in-java/</guid>
      <description>Apprenez comment ajouter une superposition de texte aux GIFs en utilisant GroupDocs.Watermark Cloud SDK for Java via REST API. Inclut du code, cURL et les étapes de configuration dès maintenant. Commencez rapidement.</description>
      <content:encoded><![CDATA[<p>Ajouter des légendes dynamiques, des sous‑titres ou des messages promotionnels aux GIF animés est un besoin courant pour les applications web et mobiles modernes. <a href="https://products.groupdocs.cloud/watermark/java/">GroupDocs.Watermark Cloud SDK for Java</a> fournit une bibliothèque puissante basée sur REST qui rend cette tâche simple. Dans ce guide, vous apprendrez comment <strong>ajouter une superposition de texte à un <a href="https://docs.fileformat.com/image/gif/">GIF</a> en utilisant REST en Java</strong>, voir une implémentation Java complète, explorer les commandes cURL équivalentes et comprendre les étapes de configuration requises.</p>
<h2 id="ajouter-une-superposition-de-texte-à-un-gif-en-utilisant-rest-en-java---exemple-de-code">Ajouter une superposition de texte à un GIF en utilisant REST en Java - Exemple de code</h2>
<p>Cet exemple montre comment configurer un filigrane texte et l&rsquo;appliquer à chaque image d&rsquo;un fichier GIF.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.api.WatermarkApi<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.client.ApiException<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.client.Configuration<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.AddWatermarkRequest<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.AddWatermarkResponse<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.FileInfo<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.OutputFileInfo<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.TextWatermarkOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.HorizontalAlignment<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.VerticalAlignment<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">AddTextOverlayToGif</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">main</span><span style="color:#f92672">(</span>String<span style="color:#f92672">[]</span> args<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Initialize API configuration (replace with your actual clientId and clientSecret)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">,</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        WatermarkApi watermarkApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> WatermarkApi<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Prepare input file information
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        FileInfo inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.gif&#34;</span><span style="color:#f92672">);</span>          <span style="color:#75715e">// Path to the source GIF in the storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setStorageName</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MyStorage&#34;</span><span style="color:#f92672">);</span>       <span style="color:#75715e">// Optional: name of the storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Prepare output file information
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        OutputFileInfo outputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> OutputFileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        outputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;output.gif&#34;</span><span style="color:#f92672">);</span>        <span style="color:#75715e">// Desired path for the watermarked GIF
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        outputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setStorageName</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MyStorage&#34;</span><span style="color:#f92672">);</span>      <span style="color:#75715e">// Optional: name of the storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Configure text watermark options
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        TextWatermarkOptions textOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TextWatermarkOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setText</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Sample Watermark&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontFamily</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Arial&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontSize</span><span style="color:#f92672">(</span>24<span style="color:#f92672">.</span><span style="color:#a6e22e">0</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setColor</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;#FF0000&#34;</span><span style="color:#f92672">);</span>             <span style="color:#75715e">// Red color in HEX
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">5</span><span style="color:#f92672">);</span>                 <span style="color:#75715e">// 50% opacity
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotationAngle</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">0</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setHorizontalAlignment</span><span style="color:#f92672">(</span>HorizontalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">CENTER</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setVerticalAlignment</span><span style="color:#f92672">(</span>VerticalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">MIDDLE</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPageRange</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;1-&#34;</span><span style="color:#f92672">);</span>               <span style="color:#75715e">// Apply to all frames/pages
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Build the request
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        AddWatermarkRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> AddWatermarkRequest<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        request<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputFileInfo</span><span style="color:#f92672">(</span>outputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOptions</span><span style="color:#f92672">(</span>textOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Execute the request
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            AddWatermarkResponse response <span style="color:#f92672">=</span> watermarkApi<span style="color:#f92672">.</span><span style="color:#a6e22e">addWatermark</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Watermark added successfully. Output file: &#34;</span> <span style="color:#f92672">+</span> response<span style="color:#f92672">.</span><span style="color:#a6e22e">getPath</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span> <span style="color:#66d9ef">catch</span> <span style="color:#f92672">(</span>ApiException e<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Error while adding watermark: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getMessage</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>            e<span style="color:#f92672">.</span><span style="color:#a6e22e">printStackTrace</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><blockquote>
<p><strong>Remarque :</strong> Cet exemple de code démontre la fonctionnalité principale. Avant de l&rsquo;utiliser dans votre projet, assurez-vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu&rsquo;ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la <a href="https://docs.groupdocs.cloud/watermark/">documentation officielle</a> ou contacter l&rsquo;<a href="https://forum.groupdocs.cloud/c/watermark/29">équipe de support</a> pour obtenir de l&rsquo;aide.</p>
</blockquote>
<h2 id="superposer-du-texte-sur-un-gif-avec-lapi-rest-en-utilisant-curl">Superposer du texte sur un GIF avec l&rsquo;API REST en utilisant cURL</h2>
<p>Voici les commandes cURL qui effectuent la même opération depuis un terminal. Elles illustrent le flux de travail complet de l’API REST : authentification, téléversement, ajout de filigrane et téléchargement.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 1. Obtain an access token</span>
</span></span><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/auth/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{&#34;client_id&#34;:&#34;YOUR_CLIENT_ID&#34;,&#34;client_secret&#34;:&#34;YOUR_CLIENT_SECRET&#34;}&#39;</span>
</span></span></code></pre></div><p>Remplacez <code>YOUR_ACCESS_TOKEN</code> dans les appels suivants par le jeton renvoyé ci‑dessus.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 2. Upload the source GIF to storage</span>
</span></span><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/input.gif&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/octet-stream&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     --data-binary @path/to/local/input.gif
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 3. Add text overlay to the GIF</span>
</span></span><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/watermark/add&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;fileInfo&#34;: { &#34;filePath&#34;: &#34;input.gif&#34;, &#34;storageName&#34;: &#34;MyStorage&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;outputFileInfo&#34;: { &#34;filePath&#34;: &#34;output.gif&#34;, &#34;storageName&#34;: &#34;MyStorage&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;options&#34;: {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;text&#34;: &#34;Sample Watermark&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;fontFamily&#34;: &#34;Arial&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;fontSize&#34;: 24,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;color&#34;: &#34;#FF0000&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;opacity&#34;: 0.5,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;horizontalAlignment&#34;: &#34;Center&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;verticalAlignment&#34;: &#34;Middle&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;pageRange&#34;: &#34;1-&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           }
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 4. Download the watermarked GIF</span>
</span></span><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/output.gif&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -o path/to/local/output.gif
</span></span></code></pre></div><p>Pour plus de détails sur les corps de requête et les formats de réponse, consultez la <a href="https://docs.groupdocs.cloud/watermark/">documentation officielle de l&rsquo;API</a>.</p>
<h2 id="analyse-détaillée-de-lajout-dune-superposition-de-texte-à-un-gif-via-rest-en-java---fonctionnement">Analyse détaillée de l&rsquo;ajout d&rsquo;une superposition de texte à un GIF via REST en Java - Fonctionnement</h2>
<ol>
<li><strong>Initialiser le client API</strong> - <code>new Configuration(&quot;YOUR_CLIENT_ID&quot;, &quot;YOUR_CLIENT_SECRET&quot;)</code> crée un objet de configuration qui contient vos identifiants. L&rsquo;instance <code>WatermarkApi</code> utilise cette configuration pour signer chaque requête.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">,</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>WatermarkApi watermarkApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> WatermarkApi<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="2">
<li>
<p><strong>Spécifier les fichiers source et destination</strong> - <code>FileInfo</code> et <code>OutputFileInfo</code> indiquent au service où lire le GIF original et où écrire le résultat. Les deux peuvent faire référence à un nom de stockage personnalisé.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>FileInfo inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.gif&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setStorageName</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MyStorage&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>Configurer le filigrane texte</strong> - <code>TextWatermarkOptions</code> contient toutes les propriétés visuelles : texte, police, taille, couleur, opacité, rotation et alignement. Définir <code>pageRange</code> sur <code>&quot;1-&quot;</code> garantit que chaque image du GIF animé reçoit la superposition.</p>
</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>TextWatermarkOptions textOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TextWatermarkOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setText</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Sample Watermark&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontFamily</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Arial&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontSize</span><span style="color:#f92672">(</span>24<span style="color:#f92672">.</span><span style="color:#a6e22e">0</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setColor</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;#FF0000&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">5</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setHorizontalAlignment</span><span style="color:#f92672">(</span>HorizontalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">CENTER</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setVerticalAlignment</span><span style="color:#f92672">(</span>VerticalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">MIDDLE</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPageRange</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;1-&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="4">
<li>
<p><strong>Construire et envoyer la requête</strong> - <code>AddWatermarkRequest</code> regroupe les informations du fichier et les options. L&rsquo;appel de <code>watermarkApi.addWatermark(request)</code> exécute l&rsquo;opération sur le serveur et renvoie le chemin du fichier traité.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>AddWatermarkRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> AddWatermarkRequest<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>request<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputFileInfo</span><span style="color:#f92672">(</span>outputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOptions</span><span style="color:#f92672">(</span>textOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>AddWatermarkResponse response <span style="color:#f92672">=</span> watermarkApi<span style="color:#f92672">.</span><span style="color:#a6e22e">addWatermark</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>Gérer la réponse</strong> - La réponse contient le chemin du fichier de sortie. Dans une application réelle, vous téléchargeriez généralement le fichier ou transmettriez le chemin à un autre service.</p>
</li>
</ol>
<p>Pour une liste complète des classes et des propriétés, consultez la <a href="https://reference.groupdocs.cloud/watermark/">référence API</a>.</p>
<h2 id="installation-et-configuration-de-groupdocswatermark-cloud-sdk-for-java">Installation et configuration de GroupDocs.Watermark Cloud SDK for Java</h2>
<p>Ajoutez la dépendance Maven à votre <code>pom.xml</code> (ou l’entrée Gradle équivalente). Cela récupère la version 23.8 du SDK.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;dependency&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;groupId&gt;</span>com.groupdocs<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;artifactId&gt;</span>groupdocs-watermark-cloud<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;version&gt;</span>23.8<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/dependency&gt;</span>
</span></span></code></pre></div><p><strong>Prérequis</strong></p>
<ul>
<li>Java 8 ou version supérieure</li>
<li>Un compte GroupDocs Cloud actif</li>
<li>Client ID et Client Secret (disponibles dans le tableau de bord GroupDocs Cloud)</li>
</ul>
<p><strong>Exemple de configuration</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">,</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><p>Téléchargez les derniers JAR depuis la <a href="https://releases.groupdocs.cloud/watermark/java/">page de téléchargement</a>. Pour une utilisation en production, appliquez une licence valide obtenue à partir de la <a href="https://purchase.groupdocs.cloud/temporary-license/">page de licence temporaire</a>.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Ajouter une superposition de texte à un GIF en utilisant REST en Java devient une opération répétable côté serveur grâce au <a href="https://products.groupdocs.cloud/watermark/java/">GroupDocs.Watermark Cloud SDK for Java</a>. Le SDK abstrait les complexités de la gestion des images animées, vous permettant de vous concentrer sur le contenu de vos sous‑titres ou messages promotionnels. Après avoir intégré le code d’exemple ou le workflow cURL, vous pouvez affiner les styles de police, les couleurs et l’opacité pour correspondre à votre marque. N’oubliez pas d’obtenir une licence de production ; les détails de tarification sont disponibles sur la page produit, et une licence temporaire peut être obtenue pour les tests via la <a href="https://purchase.groupdocs.cloud/temporary-license/">page de licence temporaire</a>. Bon codage !</p>
<h2 id="faqs">FAQs</h2>
<ul>
<li>
<p><strong>Comment ajouter une superposition de texte à un GIF en utilisant REST en Java lorsque le texte change selon l&rsquo;utilisateur ?</strong><br>
Créez l&rsquo;objet <code>TextWatermarkOptions</code> à l&rsquo;exécution avec la chaîne spécifique à l&rsquo;utilisateur, puis appelez la même méthode <code>addWatermark</code>. L&rsquo;API traite chaque requête de manière indépendante, de sorte que le contenu dynamique est entièrement pris en charge.</p>
</li>
<li>
<p><strong>Puis-je ajouter des sous-titres à un GIF animé sans affecter sa vitesse d&rsquo;animation ?</strong><br>
Oui. Le filigrane est appliqué à chaque image tout en préservant le délai d&rsquo;image d&rsquo;origine. Il suffit de définir <code>pageRange</code> sur <code>&quot;1-&quot;</code> afin que chaque image reçoive la même superposition.</p>
</li>
<li>
<p><strong>Quels formats sont pris en charge pour la couleur du texte superposé ?</strong><br>
Le SDK accepte les codes couleur HEX (par exemple, <code>#FF0000</code>) et les noms de couleur standard <a href="https://docs.fileformat.com/web/html/">HTML</a>. Consultez la <a href="https://reference.groupdocs.cloud/watermark/">référence API</a> pour la liste complète.</p>
</li>
<li>
<p><strong>Ai-je besoin d&rsquo;une licence pour le développement et les tests ?</strong><br>
Une licence temporaire suffit pour l&rsquo;évaluation et les tests. Pour les déploiements en production, achetez une licence complète depuis la page du produit et appliquez‑la à l&rsquo;aide de l&rsquo;API de licence du SDK.</p>
</li>
</ul>
<h2 id="read-more">Read More</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/fr/watermark/add-overlay-text-on-a-gif-using-rest-api-in-csharp/">Ajouter du texte superposé à un GIF à l&rsquo;aide de l&rsquo;API REST en C#</a></li>
<li><a href="https://blog.groupdocs.cloud/fr/watermark/add-watermark-to-images-using-java/">Ajouter un filigrane aux images avec Java</a></li>
<li><a href="https://blog.groupdocs.cloud/fr/watermark/add-watermark-to-word-in-java-watermark-creator/">Ajouter un filigrane à Word en Java - Créateur de filigrane</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>Protéger Excel par mot de passe via REST en Java</title>
      <link>https://blog-qa.groupdocs.cloud/fr/merger/password-protect-excel-via-rest-in-java/</link>
      <pubDate>Fri, 04 Sep 2026 12:18:34 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/fr/merger/password-protect-excel-via-rest-in-java/</guid>
      <description>Apprenez comment protéger par mot de passe un classeur Excel via REST en Java en utilisant le GroupDocs.Merger Cloud SDK. Guide étape par étape, exemple de code et commandes cURL inclus.</description>
      <content:encoded><![CDATA[<p>Masquer les données sensibles dans les classeurs Excel est une exigence courante pour les entreprises qui partagent des rapports en interne ou avec des partenaires. <a href="https://products.groupdocs.cloud/merger/java/">GroupDocs.Merger Cloud SDK for Java</a> permet aux développeurs d’ajouter une protection par mot de passe aux fichiers <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> via une API REST simple. Dans ce guide, vous apprendrez comment implémenter <strong>protéger Excel par mot de passe via REST en Java</strong>, voir un exemple complet en Java, et exécuter les commandes cURL équivalentes pour l’intégration cloud.</p>
<h2 id="prérequis-et-configuration">Prérequis et configuration</h2>
<p>Avant de commencer, assurez‑vous d&rsquo;avoir ce qui suit :</p>
<ul>
<li>Java 8 ou version supérieure installé.</li>
<li>Maven ou Gradle pour la gestion des dépendances.</li>
<li>Un compte GroupDocs Cloud avec <strong>client ID</strong> et <strong>client secret</strong>.</li>
<li>Accès au stockage cloud où les fichiers Excel seront stockés.</li>
</ul>
<p>Ajoutez la dépendance Maven à votre <code>pom.xml</code> (ou le fragment Gradle équivalent) :</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;dependency&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;groupId&gt;</span>com.groupdocs<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;artifactId&gt;</span>groupdocs-merger-cloud<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;version&gt;</span>25.11<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/dependency&gt;</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Vous pouvez télécharger les dernières JAR depuis la <a href="https://releases.groupdocs.cloud/merger/java/">page de téléchargement</a>. Après avoir ajouté la dépendance, créez un objet de configuration avec vos identifiants :</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>String clientId <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>String clientSecret <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span>clientId<span style="color:#f92672">,</span> clientSecret<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>MergerApi mergerApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> MergerApi<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Une fois le client prêt, vous pouvez passer au flux de travail réel de protection par mot de passe.</p>
<h2 id="protéger-par-mot-de-passe-un-fichier-excel-via-rest-en-java-guide-étape-par-étape">Protéger par mot de passe un fichier Excel via REST en Java : guide étape par étape</h2>
<h3 id="étape-1-charger-le-document-source">Étape 1 : Charger le document source</h3>
<p>Définissez l&rsquo;emplacement du fichier XLSX source dans votre stockage cloud.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>FileInfo inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.xlsx&#34;</span><span style="color:#f92672">);</span>   <span style="color:#75715e">// source Excel file
</span></span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<h3 id="étape-2-définir-le-chemin-de-destination">Étape 2 : définir le chemin de destination</h3>
<p>Spécifiez où le classeur protégé sera enregistré.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>String outputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output_protected.xlsx&#34;</span><span style="color:#f92672">;</span> <span style="color:#75715e">// destination file
</span></span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<h3 id="étape-3--configurer-les-options-de-protection-par-mot-de-passe">Étape 3 : Configurer les options de protection par mot de passe</h3>
<p>Créez un objet <code>ProtectOptions</code>, joignez les informations du fichier, le chemin de sortie et le mot de passe souhaité.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>ProtectOptions protectOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ProtectOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputPath</span><span style="color:#f92672">(</span>outputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPassword</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MySecretPassword&#34;</span><span style="color:#f92672">);</span> <span style="color:#75715e">// desired password
</span></span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<h3 id="étape-4-construire-la-requête-de-protection-du-document">Étape 4 : Construire la requête de protection du document</h3>
<p>Enveloppez les options dans un <code>ProtectDocumentRequest</code>.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>ProtectDocumentRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ProtectDocumentRequest<span style="color:#f92672">(</span>protectOptions<span style="color:#f92672">);</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<h3 id="étape-5-exécuter-la-requête-et-gérer-la-réponse">Étape 5 : Exécuter la requête et gérer la réponse</h3>
<p>Appelez la méthode API et traitez les éventuelles erreurs.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#66d9ef">try</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    mergerApi<span style="color:#f92672">.</span><span style="color:#a6e22e">protectDocument</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>    System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Excel file has been password protected successfully.&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>    System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Protected file stored at: &#34;</span> <span style="color:#f92672">+</span> outputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span> <span style="color:#66d9ef">catch</span> <span style="color:#f92672">(</span>ApiException e<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Error while protecting the Excel file:&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>    System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Status Code: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getCode</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>    System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Message: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getMessage</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Pour plus de détails sur chaque classe, consultez la <a href="https://reference.groupdocs.cloud/merger/">référence API</a>.</p>
<h2 id="exemple-complet-fonctionnel-pour-protéger-par-mot-de-passe-un-fichier-excel-via-rest-en-java">Exemple complet fonctionnel pour protéger par mot de passe un fichier Excel via REST en Java</h2>
<p>Le code suivant montre le processus complet du début à la fin.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.ApiException<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.Configuration<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.api.MergerApi<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.model.FileInfo<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.model.ProtectOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.model.requests.ProtectDocumentRequest<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">ProtectExcelExample</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">main</span><span style="color:#f92672">(</span>String<span style="color:#f92672">[]</span> args<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Replace with your actual client credentials
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        String clientId <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>        String clientSecret <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Initialize the API configuration
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span>clientId<span style="color:#f92672">,</span> clientSecret<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        MergerApi mergerApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> MergerApi<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Define input and output file locations (relative to the storage root)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        FileInfo inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.xlsx&#34;</span><span style="color:#f92672">);</span>          <span style="color:#75715e">// source Excel file
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        String outputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output_protected.xlsx&#34;</span><span style="color:#f92672">;</span>  <span style="color:#75715e">// destination file
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Set password protection options
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        ProtectOptions protectOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ProtectOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputPath</span><span style="color:#f92672">(</span>outputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPassword</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MySecretPassword&#34;</span><span style="color:#f92672">);</span> <span style="color:#75715e">// desired password
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Build the request
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        ProtectDocumentRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ProtectDocumentRequest<span style="color:#f92672">(</span>protectOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Execute the password protection operation
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            mergerApi<span style="color:#f92672">.</span><span style="color:#a6e22e">protectDocument</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Excel file has been password protected successfully.&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Protected file stored at: &#34;</span> <span style="color:#f92672">+</span> outputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span> <span style="color:#66d9ef">catch</span> <span style="color:#f92672">(</span>ApiException e<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Error while protecting the Excel file:&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Status Code: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getCode</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Message: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getMessage</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><blockquote>
<p><strong>Remarque :</strong> Cet exemple de code démontre la fonctionnalité principale. Avant de l&rsquo;utiliser dans votre projet, assurez‑vous de mettre à jour les chemins de fichiers (<code>input.xlsx</code>, <code>output_protected.xlsx</code>) pour qu&rsquo;ils correspondent à vos emplacements réels, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la <a href="https://docs.groupdocs.cloud/merger/">documentation officielle</a> ou contacter l&rsquo;<a href="https://forum.groupdocs.cloud/c/merger/18">équipe de support</a> pour obtenir de l&rsquo;aide.</p>
</blockquote>
<h2 id="protéger-le-classeur-excel-via-lapi-rest-avec-curl">Protéger le classeur Excel via l&rsquo;API REST avec cURL</h2>
<p>Voici un ensemble de commandes cURL qui effectuent la même opération de protection par mot de passe directement contre les points de terminaison REST.</p>
<p><strong>1. Authentifiez‑vous et obtenez un jeton d’accès</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/auth/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;client_id&#34;: &#34;YOUR_CLIENT_ID&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;client_secret&#34;: &#34;YOUR_CLIENT_SECRET&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><p>La réponse contient un <code>access_token</code> que vous utiliserez dans les appels suivants.</p>
<p><strong>2. Télécharger le fichier XLSX source</strong></p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/input.xlsx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/octet-stream&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     --data-binary @input.xlsx
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p><strong>3. Demander la protection par mot de passe</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/merger/protect&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;fileInfo&#34;: { &#34;filePath&#34;: &#34;input.xlsx&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;outputPath&#34;: &#34;output_protected.xlsx&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;password&#34;: &#34;MySecretPassword&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><p><strong>4. Télécharger le classeur protégé</strong></p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/output_protected.xlsx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -o output_protected.xlsx
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Ces commandes vous permettent d’intégrer le flux de travail de protection dans des scripts ou des pipelines CI. Pour plus de détails, consultez la <a href="https://docs.groupdocs.cloud/merger/">documentation officielle de l’API</a>.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Implémenter <strong>Protection par mot de passe d&rsquo;Excel via REST en Java</strong> est simple avec le GroupDocs.Merger Cloud SDK for Java. En suivant les étapes ci‑dessus, vous pouvez sécuriser les classeurs Excel, automatiser le processus dans les applications côté serveur et protéger les données sensibles. N&rsquo;oubliez pas d&rsquo;obtenir une licence appropriée pour la production ; les informations tarifaires sont disponibles sur la page du produit et vous pouvez commencer avec une <a href="https://purchase.groupdocs.cloud/temporary-license/">licence temporaire</a> pour évaluer la bibliothèque. Bon codage !</p>
<h2 id="faqs">FAQs</h2>
<ul>
<li>
<p><strong>En quoi la protection par mot de passe d&rsquo;Excel via REST en Java diffère-t-elle du chiffrement local ?</strong><br>
L&rsquo;API cloud effectue le chiffrement sur le serveur, vous n&rsquo;avez donc pas besoin de gérer les bibliothèques cryptographiques localement. Le SDK gère la construction des requêtes et l&rsquo;analyse des réponses, simplifiant l&rsquo;intégration.</p>
</li>
<li>
<p><strong>Est-il possible de définir des options de protection supplémentaires, comme le mode lecture seule ?</strong><br>
La classe <code>ProtectOptions</code> actuelle se concentre sur la protection par mot de passe. Pour des fonctionnalités de sécurité plus avancées, consultez la <a href="https://reference.groupdocs.cloud/merger/">référence API</a> pour d&rsquo;éventuels nouveaux paramètres.</p>
</li>
<li>
<p><strong>Quels formats de fichiers sont pris en charge pour la protection par mot de passe ?</strong><br>
L&rsquo;API Merger prend actuellement en charge XLSX, <a href="https://docs.fileformat.com/word-processing/docx/">DOCX</a>, <a href="https://docs.fileformat.com/presentation/pptx/">PPTX</a>, et <a href="https://docs.fileformat.com/pdf">PDF</a> pour le chiffrement. Consultez la <a href="https://docs.groupdocs.cloud/merger/">documentation officielle</a> pour la liste complète.</p>
</li>
<li>
<p><strong>Ai-je besoin d&rsquo;une licence pour exécuter l&rsquo;exemple dans un environnement de développement ?</strong><br>
Le développement et les tests peuvent être effectués avec une licence temporaire. Les déploiements en production nécessitent une licence payante, que vous pouvez acheter via la page produit.</p>
</li>
</ul>
<h2 id="lire-la-suite">Lire la suite</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/fr/merger/password-protect-powerpoint-files-in-nodejs/">Protéger par mot de passe les fichiers PowerPoint avec Node.js</a></li>
<li><a href="https://blog.groupdocs.cloud/fr/merger/password-protect-excel-files-using-rest-api-in-python/">Protéger par mot de passe les fichiers Excel à l&rsquo;aide de l&rsquo;API REST en Python</a></li>
<li><a href="https://blog.groupdocs.cloud/fr/merger/combine-excel-sheets-in-java-excel-files-merger/">Combiner les feuilles Excel en Java - Fusionneur de fichiers Excel</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
