<?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>csharp pdf signature on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/fr/tag/csharp-pdf-signature/</link>
    <description>Recent content in csharp pdf signature on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fr</language>
    <lastBuildDate>Wed, 16 Sep 2026 12:53:38 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/fr/tag/csharp-pdf-signature/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Modifier les signatures en C#</title>
      <link>https://blog-qa.groupdocs.cloud/fr/signature/edit-signatures-in-csharp/</link>
      <pubDate>Wed, 16 Sep 2026 12:53:38 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/fr/signature/edit-signatures-in-csharp/</guid>
      <description>Apprenez à modifier les signatures dans un PDF signé en utilisant GroupDocs.Signature Cloud SDK for .NET en C#. Guide étape par étape avec du code, cURL et les instructions d’installation.</description>
      <content:encoded><![CDATA[<p>La modification d’une signature numérique après qu’un <a href="https://docs.fileformat.com/pdf">PDF</a> a été signé est une exigence fréquente, notamment lorsque les règles métier changent ou lorsqu’une signature doit être repositionnée. <a href="https://products.groupdocs.cloud/signature/net/">GroupDocs.Signature Cloud SDK for .NET</a> fournit une bibliothèque robuste qui vous permet de modifier programmatiquement les signatures dans les fichiers PDF signés sans compromettre la validité du document. Ce guide vous accompagne pas à pas dans une implémentation complète, couvrant tout, de la configuration au téléchargement du fichier mis à jour, afin que vous puissiez intégrer la modification de signature dans vos applications C# en toute confiance.</p>
<h2 id="exemple-complet-de-code--modifier-les-signatures-dans-un-pdf-signé">Exemple complet de code : Modifier les signatures dans un PDF signé</h2>
<p>L&rsquo;exemple suivant montre comment modifier les signatures dans un PDF signé en utilisant le GroupDocs.Signature Cloud SDK for .NET.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.Collections.Generic;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.IO;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Signature.Cloud.Sdk.Api;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Signature.Cloud.Sdk.Client;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Signature.Cloud.Sdk.Model;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Signature.Cloud.Sdk.Model.Requests;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">Program</span>
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> Main()
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Configuration</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">var</span> config = <span style="color:#66d9ef">new</span> Configuration
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            ClientId = <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>,
</span></span><span style="display:flex;"><span>            ClientSecret = <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>
</span></span><span style="display:flex;"><span>        };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// API instances</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">var</span> signatureApi = <span style="color:#66d9ef">new</span> SignatureApi(config);
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">var</span> storageApi = <span style="color:#66d9ef">new</span> StorageApi(config);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// File paths</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">string</span> inputFilePath = <span style="color:#e6db74">&#34;input.pdf&#34;</span>;
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">string</span> outputFilePath = <span style="color:#e6db74">&#34;output.pdf&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Ensure file exists in storage (upload if needed)</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">if</span> (!storageApi.ObjectExists(<span style="color:#66d9ef">new</span> ObjectExistsRequest(<span style="color:#66d9ef">new</span> StorageExist
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            Path = inputFilePath,
</span></span><span style="display:flex;"><span>            StorageName = <span style="color:#66d9ef">null</span>
</span></span><span style="display:flex;"><span>        })).Exists)
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> fileStream = File.OpenRead(inputFilePath))
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                storageApi.UploadFile(<span style="color:#66d9ef">new</span> UploadFileRequest(<span style="color:#66d9ef">new</span> UploadFile
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    Path = inputFilePath,
</span></span><span style="display:flex;"><span>                    File = fileStream
</span></span><span style="display:flex;"><span>                }));
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Get list of signatures in the document</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">var</span> fileInfo = <span style="color:#66d9ef">new</span> FileInfo
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            FilePath = inputFilePath,
</span></span><span style="display:flex;"><span>            StorageName = <span style="color:#66d9ef">null</span>,
</span></span><span style="display:flex;"><span>            Password = <span style="color:#66d9ef">null</span>
</span></span><span style="display:flex;"><span>        };
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">var</span> getSignaturesRequest = <span style="color:#66d9ef">new</span> GetSignaturesRequest(<span style="color:#66d9ef">new</span> GetSignaturesOptions
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            FileInfo = fileInfo
</span></span><span style="display:flex;"><span>        });
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">var</span> signaturesResponse = signatureApi.GetSignatures(getSignaturesRequest);
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">if</span> (signaturesResponse.Signatures == <span style="color:#66d9ef">null</span> || signaturesResponse.Signatures.Count == <span style="color:#ae81ff">0</span>)
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            Console.WriteLine(<span style="color:#e6db74">&#34;No signatures found.&#34;</span>);
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">return</span>;
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Choose first signature to edit</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">var</span> signatureToEdit = signaturesResponse.Signatures[<span style="color:#ae81ff">0</span>];
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">string</span> signatureId = signatureToEdit.SignatureId;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Prepare new options (example: change text signature)</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">var</span> textOptions = <span style="color:#66d9ef">new</span> SignTextOptions
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Keep existing properties, modify as needed</span>
</span></span><span style="display:flex;"><span>            Text = <span style="color:#e6db74">&#34;Edited Signature Text&#34;</span>,
</span></span><span style="display:flex;"><span>            Left = signatureToEdit.Left + <span style="color:#ae81ff">10</span>,
</span></span><span style="display:flex;"><span>            Top = signatureToEdit.Top + <span style="color:#ae81ff">10</span>,
</span></span><span style="display:flex;"><span>            Width = signatureToEdit.Width,
</span></span><span style="display:flex;"><span>            Height = signatureToEdit.Height,
</span></span><span style="display:flex;"><span>            Font = <span style="color:#66d9ef">new</span> SignatureFont
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                FontFamily = <span style="color:#e6db74">&#34;Arial&#34;</span>,
</span></span><span style="display:flex;"><span>                FontSize = <span style="color:#ae81ff">12</span>,
</span></span><span style="display:flex;"><span>                Bold = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>                Italic = <span style="color:#66d9ef">false</span>,
</span></span><span style="display:flex;"><span>                Underline = <span style="color:#66d9ef">false</span>,
</span></span><span style="display:flex;"><span>                Color = <span style="color:#e6db74">&#34;FF0000&#34;</span>
</span></span><span style="display:flex;"><span>            },
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Preserve other required fields</span>
</span></span><span style="display:flex;"><span>            SignatureId = signatureId,
</span></span><span style="display:flex;"><span>            PageNumber = signatureToEdit.PageNumber,
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Set output file path</span>
</span></span><span style="display:flex;"><span>            OutputFilePath = outputFilePath
</span></span><span style="display:flex;"><span>        };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> updateSignatureRequest = <span style="color:#66d9ef">new</span> UpdateSignatureRequest(<span style="color:#66d9ef">new</span> UpdateSignatureOptions
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            FileInfo = fileInfo,
</span></span><span style="display:flex;"><span>            SignatureId = signatureId,
</span></span><span style="display:flex;"><span>            Options = textOptions
</span></span><span style="display:flex;"><span>        });
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> updateResponse = signatureApi.UpdateSignature(updateSignatureRequest);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Download updated file</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">var</span> downloadRequest = <span style="color:#66d9ef">new</span> DownloadFileRequest(<span style="color:#66d9ef">new</span> DownloadFile
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            Path = outputFilePath,
</span></span><span style="display:flex;"><span>            StorageName = <span style="color:#66d9ef">null</span>
</span></span><span style="display:flex;"><span>        });
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> downloadStream = storageApi.DownloadFile(downloadRequest))
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> fileStream = File.Create(outputFilePath))
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            downloadStream.CopyTo(fileStream);
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">&#34;Signature edited and saved to &#34;</span> + outputFilePath);
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><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/signature/">documentation officielle</a> ou contacter l&rsquo;<a href="https://forum.groupdocs.cloud/c/signature/13">équipe de support</a> pour obtenir de l&rsquo;aide.</p>
</blockquote>
<h2 id="commandes-curl-pour-la-modification-de-signature-via-lapi-rest">Commandes cURL pour la modification de signature via l&rsquo;API REST</h2>
<p>Voici un ensemble de commandes cURL qui effectuent la même opération de modification des signatures dans un PDF signé en utilisant l&rsquo;API REST.</p>
<p>Tout d&rsquo;abord, obtenez un jeton d&rsquo;accès.</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/oauth2/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;grant_type&#34;:&#34;client_credentials&#34;,
</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>Téléchargez le PDF source vers le stockage cloud.</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 PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/input.pdf&#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 <span style="color:#e6db74">&#34;@input.pdf&#34;</span>
</span></span></code></pre></div><p>Mettez à jour la première signature (exemple modifiant une signature texte).</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/signature/update&#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;: {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;filePath&#34;: &#34;input.pdf&#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">           &#34;signatureId&#34;: &#34;SIGNATURE_ID_FROM_GET&#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;Edited Signature Text&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;left&#34;: 120,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;top&#34;: 150,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;font&#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;: 12,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">                   &#34;bold&#34;: true,
</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">               },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;outputFilePath&#34;: &#34;output.pdf&#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><p>Téléchargez le PDF mis à jour.</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 GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/output.pdf&#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.pdf
</span></span></code></pre></div><p>Pour plus de détails, consultez la <a href="https://docs.groupdocs.cloud/signature/">documentation officielle de l&rsquo;API</a>.</p>
<h2 id="comprendre-la-modification-des-signatures-en-c">Comprendre la modification des signatures en C#</h2>
<p>Voici une brève explication de la façon dont le code C# fourni réalise la modification des signatures dans le flux de travail des PDF signés.</p>
<ol>
<li><strong>Configurer l&rsquo;authentification</strong> - L&rsquo;objet <code>Configuration</code> est rempli avec <code>ClientId</code> et <code>ClientSecret</code>. Cela établit une session sécurisée avec le service cloud.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> config = <span style="color:#66d9ef">new</span> Configuration { ClientId = <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>, ClientSecret = <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span> };
</span></span></code></pre></div><ol start="2">
<li>
<p><strong>Créer des instances d&rsquo;API</strong> - <code>SignatureApi</code> et <code>StorageApi</code> sont instanciés en utilisant la configuration, ce qui donne accès aux points de terminaison liés aux signatures et au stockage.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> signatureApi = <span style="color:#66d9ef">new</span> SignatureApi(config);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> storageApi = <span style="color:#66d9ef">new</span> StorageApi(config);
</span></span></code></pre></div></li>
<li>
<p><strong>Télécharger si manquant</strong> - Le code vérifie si <code>input.pdf</code> existe dans le stockage cloud ; sinon, il télécharge le fichier en utilisant <code>UploadFile</code>. Cela garantit que les opérations suivantes disposent d’un document source.</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-csharp" data-lang="csharp"><span style="display:flex;"><span>storageApi.UploadFile(<span style="color:#66d9ef">new</span> UploadFileRequest(<span style="color:#66d9ef">new</span> UploadFile { Path = inputFilePath, File = fileStream }));
</span></span></code></pre></div></li>
<li>
<p><strong>Récupérer les signatures existantes</strong> - <code>GetSignatures</code> récupère toutes les signatures dans le document. La première signature est sélectionnée pour la modification, et son <code>SignatureId</code> est stocké.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> signaturesResponse = signatureApi.GetSignatures(getSignaturesRequest);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> signatureToEdit = signaturesResponse.Signatures[<span style="color:#ae81ff">0</span>];
</span></span></code></pre></div><ol start="5">
<li>
<p><strong>Préparer les options mises à jour</strong> - Un nouvel objet <code>SignTextOptions</code> copie les propriétés existantes et modifie le texte, la position et la police. Les <code>SignatureId</code> et <code>PageNumber</code> sont conservés pour cibler la signature correcte.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> textOptions = <span style="color:#66d9ef">new</span> SignTextOptions { Text = <span style="color:#e6db74">&#34;Edited Signature Text&#34;</span>, Left = signatureToEdit.Left + <span style="color:#ae81ff">10</span>, <span style="color:#75715e">/* ... */</span> };
</span></span></code></pre></div></li>
<li>
<p><strong>Exécuter la mise à jour</strong> - <code>UpdateSignature</code> envoie les options modifiées au serveur, qui réécrit la signature tout en laissant le reste du PDF intact.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> updateResponse = signatureApi.UpdateSignature(updateSignatureRequest);
</span></span></code></pre></div></li>
<li>
<p><strong>Résultat du téléchargement</strong> - Enfin, le PDF mis à jour est téléchargé depuis le stockage vers le système de fichiers local.</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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> downloadStream = storageApi.DownloadFile(downloadRequest))
</span></span></code></pre></div><p>Pour une liste complète des classes et des méthodes, consultez la <a href="https://reference.groupdocs.cloud/signature/">référence API</a>.</p>
<h2 id="préparer-lenvironnement">Préparer l&rsquo;environnement</h2>
<p>Préparez votre environnement de développement avant d&rsquo;écrire du code.</p>
<ol>
<li><strong>Installez le SDK via NuGet</strong></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-bash" data-lang="bash"><span style="display:flex;"><span>dotnet add package GroupDocs.signature-Cloud
</span></span></code></pre></div><p>Vous pouvez également télécharger le dernier package depuis la <a href="https://releases.groupdocs.cloud/signature/net/">page de publication</a>.</p>
<ol start="2">
<li>
<p><strong>Configurer l&rsquo;environnement d&rsquo;exécution .NET</strong> - La bibliothèque nécessite .NET 6.0 ou une version ultérieure. Assurez‑vous que votre projet cible un framework compatible.</p>
</li>
<li>
<p><strong>Créer un compte GroupDocs Cloud</strong> - Inscrivez‑vous sur le portail GroupDocs et obtenez votre <code>ClientId</code> et <code>ClientSecret</code>. Ces identifiants sont nécessaires pour chaque appel d&rsquo;API.</p>
</li>
<li>
<p><strong>Configurer les informations d&rsquo;identification</strong> - Stockez les informations d&rsquo;identification de manière sécurisée, par exemple dans <code>appsettings.json</code> ou des variables d&rsquo;environnement, et faites‑y référence lors de la création de l&rsquo;objet <code>Configuration</code>.</p>
</li>
<li>
<p><strong>Vérifier la connectivité</strong> - Exécutez une requête simple (par ex., <code>storageApi.ObjectExists</code>) pour confirmer que vos identifiants sont valides et que le service est accessible.</p>
</li>
</ol>
<p>Une fois ces étapes terminées, vous êtes prêt à exécuter l&rsquo;exemple de code et à commencer à modifier les signatures.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Modifier les signatures dans les documents PDF signés est simple avec le <a href="https://products.groupdocs.cloud/signature/net/">GroupDocs.Signature Cloud SDK for .NET</a>. En suivant les étapes ci‑dessus, vous pouvez localiser une signature existante, modifier ses propriétés visuelles et préserver l&rsquo;intégrité du document, le tout depuis une application C#. N&rsquo;oubliez pas d&rsquo;obtenir une licence appropriée pour une utilisation en production ; vous pouvez acheter une licence complète ou obtenir une licence temporaire depuis la <a href="https://purchase.groupdocs.cloud/temporary-license/">page de licence temporaire</a>. Commencez dès aujourd&rsquo;hui à intégrer la modification de signatures et rationalisez vos flux de travail documentaires.</p>
<h2 id="faq">FAQ</h2>
<ul>
<li>
<p><strong>Puis-je modifier les signatures dans un PDF signé sans compromettre la validité de la signature ?</strong><br>
Oui. Le SDK met à jour uniquement la représentation visuelle tout en conservant le hachage cryptographique intact, de sorte que le document reste valide.</p>
</li>
<li>
<p><strong>Quelle est la différence entre edit Signatures in Signed PDF et edit Signatures in Signed PDF in .NET ?</strong><br>
Le premier décrit l&rsquo;opération générique, tandis que le second souligne que l&rsquo;implémentation utilise la version .NET du GroupDocs.Signature Cloud SDK.</p>
</li>
<li>
<p><strong>Dois‑je re‑signer le PDF après avoir modifié une signature ?</strong><br>
Non. Le SDK modifie l&rsquo;apparence de l&rsquo;objet de signature existant ; la signature numérique originale reste inchangée.</p>
</li>
<li>
<p><strong>Existe-t-il un projet d&rsquo;exemple que je peux télécharger ?</strong><br>
Oui, un exemple complet est disponible dans le référentiel GitHub : <a href="https://github.com/groupdocs-signature-cloud/groupdocs-signature-cloud-dotnet">https://github.com/groupdocs-signature-cloud/groupdocs-signature-cloud-dotnet</a></p>
</li>
</ul>
<h2 id="read-more">Read More</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/fr/signature/build-custom-electronic-signature-workflows-in-your-asp-net-csharp-vb-net-apps/">Créer des flux de travail de signature électronique personnalisés dans vos applications ASP.NET, C#, VB.NET</a></li>
<li><a href="https://blog.groupdocs.cloud/fr/signature/edit-signatures-in-signed-pdf-documents-using-python/">Modifier les signatures dans les documents PDF signés à l&rsquo;aide de Python</a></li>
<li><a href="https://blog.groupdocs.cloud/fr/signature/digitally-sign-a-word-document-online/">Comment signer numériquement un document Word en ligne</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
