Das Bearbeiten einer digitalen Signatur, nachdem ein PDF signiert wurde, ist ein häufiges Anforderung, insbesondere wenn sich Geschäftsregeln ändern oder eine Signatur neu positioniert werden muss. GroupDocs.Signature Cloud SDK for .NET bietet eine robuste Bibliothek, mit der Sie Signaturen in signierten PDF‑Dateien programmgesteuert bearbeiten können, ohne die Gültigkeit des Dokuments zu beeinträchtigen. Dieser Leitfaden führt Sie Schritt für Schritt durch die vollständige Implementierung und deckt alles von der Konfiguration bis zum Herunterladen der aktualisierten Datei ab, sodass Sie die Signaturbearbeitung sicher in Ihre C#‑Anwendungen integrieren können.

Vollständiges Codebeispiel: Signaturen in signierten PDF bearbeiten

Das folgende Beispiel demonstriert, wie Signaturen in signierten PDF mit dem GroupDocs.Signature Cloud SDK für .NET bearbeitet werden können.

using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Signature.Cloud.Sdk.Api;
using GroupDocs.Signature.Cloud.Sdk.Client;
using GroupDocs.Signature.Cloud.Sdk.Model;
using GroupDocs.Signature.Cloud.Sdk.Model.Requests;

class Program
{
    static void Main()
    {
        // Configuration
        var config = new Configuration
        {
            ClientId = "YOUR_CLIENT_ID",
            ClientSecret = "YOUR_CLIENT_SECRET"
        };

// API instances
        var signatureApi = new SignatureApi(config);
        var storageApi = new StorageApi(config);

// File paths
        string inputFilePath = "input.pdf";
        string outputFilePath = "output.pdf";

// Ensure file exists in storage (upload if needed)
        if (!storageApi.ObjectExists(new ObjectExistsRequest(new StorageExist
        {
            Path = inputFilePath,
            StorageName = null
        })).Exists)
        {
            using (var fileStream = File.OpenRead(inputFilePath))
            {
                storageApi.UploadFile(new UploadFileRequest(new UploadFile
                {
                    Path = inputFilePath,
                    File = fileStream
                }));
            }
        }

// Get list of signatures in the document
        var fileInfo = new FileInfo
        {
            FilePath = inputFilePath,
            StorageName = null,
            Password = null
        };
        var getSignaturesRequest = new GetSignaturesRequest(new GetSignaturesOptions
        {
            FileInfo = fileInfo
        });
        var signaturesResponse = signatureApi.GetSignatures(getSignaturesRequest);
        if (signaturesResponse.Signatures == null || signaturesResponse.Signatures.Count == 0)
        {
            Console.WriteLine("No signatures found.");
            return;
        }

// Choose first signature to edit
        var signatureToEdit = signaturesResponse.Signatures[0];
        string signatureId = signatureToEdit.SignatureId;

// Prepare new options (example: change text signature)
        var textOptions = new SignTextOptions
        {
            // Keep existing properties, modify as needed
            Text = "Edited Signature Text",
            Left = signatureToEdit.Left + 10,
            Top = signatureToEdit.Top + 10,
            Width = signatureToEdit.Width,
            Height = signatureToEdit.Height,
            Font = new SignatureFont
            {
                FontFamily = "Arial",
                FontSize = 12,
                Bold = true,
                Italic = false,
                Underline = false,
                Color = "FF0000"
            },
            // Preserve other required fields
            SignatureId = signatureId,
            PageNumber = signatureToEdit.PageNumber,
            // Set output file path
            OutputFilePath = outputFilePath
        };

var updateSignatureRequest = new UpdateSignatureRequest(new UpdateSignatureOptions
        {
            FileInfo = fileInfo,
            SignatureId = signatureId,
            Options = textOptions
        });

var updateResponse = signatureApi.UpdateSignature(updateSignatureRequest);

// Download updated file
        var downloadRequest = new DownloadFileRequest(new DownloadFile
        {
            Path = outputFilePath,
            StorageName = null
        });
        using (var downloadStream = storageApi.DownloadFile(downloadRequest))
        using (var fileStream = File.Create(outputFilePath))
        {
            downloadStream.CopyTo(fileStream);
        }

Console.WriteLine("Signature edited and saved to " + outputFilePath);
    }
}

Hinweis: Dieses Codebeispiel demonstriert die Kernfunktionalität. Bevor Sie es in Ihrem Projekt verwenden, stellen Sie sicher, dass Sie alle Dateipfade und Konfigurationswerte an Ihre tatsächliche Umgebung anpassen, dass alle erforderlichen Abhängigkeiten ordnungsgemäß installiert sind und testen Sie gründlich in Ihrer Entwicklungsumgebung. Wenn Sie auf Probleme stoßen, lesen Sie bitte die offizielle Dokumentation oder wenden Sie sich an das Support-Team für Unterstützung.

cURL-Befehle für die Signaturbearbeitung über die REST-API

Unten finden Sie eine Reihe von cURL-Befehlen, die dieselbe Operation zum Bearbeiten von Signaturen in einem signierten PDF mithilfe der REST-API ausführen.

Zuerst ein Zugriffstoken erhalten.

curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/json" \
     -d '{
           "grant_type":"client_credentials",
           "client_id":"YOUR_CLIENT_ID",
           "client_secret":"YOUR_CLIENT_SECRET"
         }'

Laden Sie die Quell‑PDF in den Cloud‑Speicher hoch.

curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@input.pdf"

Aktualisieren Sie die erste Signatur (Beispiel ändert eine Textsignatur).

curl -X POST "https://api.groupdocs.cloud/v2.0/signature/update" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": {
               "filePath": "input.pdf"
           },
           "signatureId": "SIGNATURE_ID_FROM_GET",
           "options": {
               "text": "Edited Signature Text",
               "left": 120,
               "top": 150,
               "font": {
                   "fontFamily": "Arial",
                   "fontSize": 12,
                   "bold": true,
                   "color": "FF0000"
               },
               "outputFilePath": "output.pdf"
           }
         }'

Laden Sie das aktualisierte PDF herunter.

curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.pdf

Für weitere Details siehe die offizielle API‑Dokumentation.

Verständnis der Signaturmodifikation in C#

Im Folgenden finden Sie eine prägnante Aufschlüsselung, wie der bereitgestellte C#‑Code den Workflow zum Bearbeiten von Signaturen in einem signierten PDF umsetzt.

  1. Authentifizierung konfigurieren - Das Configuration-Objekt wird mit ClientId und ClientSecret gefüllt. Dies stellt eine sichere Sitzung mit dem Cloud‑Dienst her.
var config = new Configuration { ClientId = "YOUR_CLIENT_ID", ClientSecret = "YOUR_CLIENT_SECRET" };
  1. API-Instanzen erstellen - SignatureApi und StorageApi werden mithilfe der Konfiguration instanziiert, wodurch Zugriff auf signaturbezogene und speicherbezogene Endpunkte gewährt wird.
var signatureApi = new SignatureApi(config);
var storageApi = new StorageApi(config);
  1. Upload If Missing - Der Code prüft, ob input.pdf im Cloud‑Speicher vorhanden ist; falls nicht, wird die Datei mit UploadFile hochgeladen. Dadurch wird sichergestellt, dass die nachfolgenden Vorgänge ein Quelldokument haben.

    storageApi.UploadFile(new UploadFileRequest(new UploadFile { Path = inputFilePath, File = fileStream }));
    
  2. Vorhandene Signaturen abrufen - GetSignatures ruft alle Signaturen im Dokument ab. Die erste Signatur wird zur Bearbeitung ausgewählt und ihre SignatureId wird gespeichert.

    var signaturesResponse = signatureApi.GetSignatures(getSignaturesRequest);
    var signatureToEdit = signaturesResponse.Signatures[0];
    
  3. Aktualisierte Optionen vorbereiten - Ein neues SignTextOptions-Objekt kopiert die vorhandenen Eigenschaften und ändert den Text, die Position und die Schriftart. Die SignatureId und PageNumber werden beibehalten, um die korrekte Signatur anzusteuern.

    var textOptions = new SignTextOptions { Text = "Edited Signature Text", Left = signatureToEdit.Left + 10, /* ... */ };
    
  4. Update ausführen - UpdateSignature sendet die geänderten Optionen an den Server, der die Signatur neu schreibt, während der Rest des PDFs unverändert bleibt.

    var updateResponse = signatureApi.UpdateSignature(updateSignatureRequest);
    
  5. Download-Ergebnis - Schließlich wird das aktualisierte PDF vom Speicher in das lokale Dateisystem heruntergeladen.

using (var downloadStream = storageApi.DownloadFile(downloadRequest))

Für eine vollständige Liste von Klassen und Methoden siehe die API‑Referenz.

Vorbereitung der Umgebung

Richten Sie Ihre Entwicklungsumgebung ein, bevor Sie Code schreiben.

  1. Installieren Sie das SDK über NuGet
dotnet add package GroupDocs.signature-Cloud

Sie können das neueste Paket auch von der Release-Seite herunterladen.

  1. Einrichten der .NET-Laufzeit - Die Bibliothek erfordert .NET 6.0 oder höher. Stellen Sie sicher, dass Ihr Projekt ein kompatibles Framework verwendet.

  2. Create a GroupDocs Cloud Account - Registrieren Sie sich im GroupDocs-Portal und erhalten Sie Ihre ClientId und ClientSecret. Diese Anmeldeinformationen werden für jeden API-Aufruf benötigt.

  3. Anmeldeinformationen konfigurieren - Speichern Sie die Anmeldeinformationen sicher, zum Beispiel in appsettings.json oder Umgebungsvariablen, und verweisen Sie darauf, wenn Sie das Configuration‑Objekt erstellen.

  4. Verbindung prüfen - Führen Sie eine einfache Anfrage aus (z. B. storageApi.ObjectExists), um zu bestätigen, dass Ihre Anmeldeinformationen gültig sind und der Dienst erreichbar ist.

Nachdem diese Schritte abgeschlossen sind, können Sie das Codebeispiel ausführen und mit dem Bearbeiten von Signaturen beginnen.

Fazit

Die Bearbeitung von Signaturen in signierten PDF‑Dokumenten ist mit dem GroupDocs.Signature Cloud SDK for .NET unkompliziert. Wenn Sie den obigen Schritten folgen, können Sie eine vorhandene Signatur finden, ihre visuellen Eigenschaften ändern und die Integrität des Dokuments aus einer C#‑Anwendung heraus bewahren. Denken Sie daran, für den Produktionseinsatz eine geeignete Lizenz zu sichern; Sie können eine Volllizenz erwerben oder eine temporäre Lizenz von der temporären Lizenzseite erhalten. Beginnen Sie noch heute mit der Integration der Signaturbearbeitung und optimieren Sie Ihre Dokumenten‑Workflows.

FAQs

  • Kann ich Signaturen in einem signierten PDF bearbeiten, ohne die Gültigkeit der Signatur zu beeinträchtigen?
    Ja. Das SDK aktualisiert nur die visuelle Darstellung, während der kryptografische Hash unverändert bleibt, sodass das Dokument gültig bleibt.

  • Was ist der Unterschied zwischen edit Signatures in Signed PDF und edit Signatures in Signed PDF in .NET?
    Ersteres beschreibt die generische Operation, während Letzteres betont, dass die Implementierung die .NET-Version des GroupDocs.Signature Cloud SDK verwendet.

  • Muss ich das PDF nach dem Bearbeiten einer Signatur erneut signieren?
    Nein. Das SDK ändert das Aussehen des bestehenden Signaturobjekts; die ursprüngliche digitale Signatur bleibt unverändert.

  • Gibt es ein Beispielprojekt, das ich herunterladen kann?
    Ja, ein vollständiges Beispiel ist im GitHub-Repository verfügbar: https://github.com/groupdocs-signature-cloud/groupdocs-signature-cloud-dotnet.

Read More