Mengedit tanda tangan digital setelah sebuah PDF ditandatangani merupakan kebutuhan yang sering muncul, terutama ketika aturan bisnis berubah atau ketika tanda tangan perlu dipindahkan. GroupDocs.Signature Cloud SDK for .NET menyediakan pustaka yang kuat yang memungkinkan Anda mengedit Tanda Tangan dalam file PDF yang telah ditandatangani secara programatis tanpa mengorbankan keabsahan dokumen. Panduan ini memandu Anda melalui implementasi lengkap, langkah demi langkah, mencakup semua hal mulai dari konfigurasi hingga mengunduh file yang diperbarui, sehingga Anda dapat mengintegrasikan pengeditan tanda tangan ke dalam aplikasi C# Anda dengan percaya diri.

Contoh Kode Lengkap: Edit Tanda Tangan dalam PDF yang Ditandatangani

Contoh berikut menunjukkan cara mengedit Tanda Tangan dalam PDF yang Ditandatangani menggunakan GroupDocs.Signature Cloud SDK for .NET.

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);
    }
}

Catatan: Contoh kode ini menunjukkan fungsi inti. Sebelum menggunakannya dalam proyek Anda, pastikan untuk memperbarui semua jalur file dan nilai konfigurasi agar sesuai dengan lingkungan Anda yang sebenarnya, verifikasi bahwa semua dependensi yang diperlukan telah terpasang dengan benar, dan uji secara menyeluruh di lingkungan pengembangan Anda. Jika Anda menemukan masalah, silakan merujuk ke dokumentasi resmi atau hubungi tim dukungan untuk bantuan.

Perintah cURL untuk Penyuntingan Tanda Tangan via REST API

Berikut adalah sekumpulan perintah cURL yang melakukan operasi edit Tanda Tangan dalam PDF yang ditandatangani menggunakan REST API.

Pertama, dapatkan token akses.

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"
         }'

Unggah PDF sumber ke penyimpanan cloud.

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"

Perbarui tanda tangan pertama (contoh mengubah tanda tangan teks).

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"
           }
         }'

Unduh PDF yang diperbarui.

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

Untuk detail lebih lanjut, lihat dokumentasi API resmi.

Memahami Modifikasi Tanda Tangan dalam C#

Berikut adalah penjelasan singkat tentang bagaimana kode C# yang disediakan melakukan penyuntingan Tanda Tangan dalam alur kerja PDF yang ditandatangani.

  1. Konfigurasi Otentikasi - Objek Configuration diisi dengan ClientId dan ClientSecret. Ini menetapkan sesi aman dengan layanan cloud.
var config = new Configuration { ClientId = "YOUR_CLIENT_ID", ClientSecret = "YOUR_CLIENT_SECRET" };
  1. Buat Instance API - SignatureApi dan StorageApi diinstansiasi menggunakan konfigurasi, memberikan akses ke endpoint yang terkait dengan tanda tangan dan penyimpanan.
var signatureApi = new SignatureApi(config);
var storageApi = new StorageApi(config);
  1. Upload Jika Tidak Ada - Kode memeriksa apakah input.pdf ada di penyimpanan cloud; jika tidak, ia mengunggah file menggunakan UploadFile. Ini memastikan operasi selanjutnya memiliki dokumen sumber.
storageApi.UploadFile(new UploadFileRequest(new UploadFile { Path = inputFilePath, File = fileStream }));
  1. Mengambil Tanda Tangan yang Ada - GetSignatures mengambil semua tanda tangan dalam dokumen. Tanda tangan pertama dipilih untuk diedit, dan SignatureId-nya disimpan.

    var signaturesResponse = signatureApi.GetSignatures(getSignaturesRequest);
    var signatureToEdit = signaturesResponse.Signatures[0];
    
  2. Siapkan Opsi yang Diperbarui - Sebuah objek SignTextOptions baru menyalin properti yang ada dan mengubah teks, posisi, serta font. SignatureId dan PageNumber dipertahankan untuk menargetkan tanda tangan yang tepat.

    var textOptions = new SignTextOptions { Text = "Edited Signature Text", Left = signatureToEdit.Left + 10, /* ... */ };
    
  3. Eksekusi Pembaruan - UpdateSignature mengirim opsi yang dimodifikasi ke server, yang menulis ulang tanda tangan sambil membiarkan sisanya dari PDF tidak berubah.

    var updateResponse = signatureApi.UpdateSignature(updateSignatureRequest);
    
  4. Download Result - Akhirnya, PDF yang diperbarui diunduh dari penyimpanan ke sistem file lokal.

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

Untuk daftar lengkap kelas dan metode, lihat referensi API.

Menyiapkan Lingkungan

Siapkan lingkungan pengembangan Anda sebelum menulis kode apa pun.

  1. Instal SDK melalui NuGet
dotnet add package GroupDocs.signature-Cloud

Anda juga dapat mengunduh paket terbaru dari halaman rilis.

  1. Siapkan .NET Runtime - Perpustakaan memerlukan .NET 6.0 atau yang lebih baru. Pastikan proyek Anda menargetkan kerangka kerja yang kompatibel.

  2. Buat Akun GroupDocs Cloud - Daftar di portal GroupDocs dan dapatkan ClientId dan ClientSecret Anda. Kredensial ini diperlukan untuk setiap panggilan API.

  3. Konfigurasi Kredensial - Simpan kredensial dengan aman, misalnya di appsettings.json atau variabel lingkungan, dan referensikan mereka saat membangun objek Configuration.

  4. Verifikasi Konektivitas - Jalankan permintaan sederhana (mis., storageApi.ObjectExists) untuk mengonfirmasi bahwa kredensial Anda valid dan layanan dapat dijangkau.

Dengan langkah-langkah ini selesai, Anda siap menjalankan contoh kode dan mulai mengedit tanda tangan.

Kesimpulan

Mengedit Tanda Tangan dalam dokumen PDF yang ditandatangani sangat mudah dengan GroupDocs.Signature Cloud SDK for .NET. Dengan mengikuti langkah-langkah di atas, Anda dapat menemukan tanda tangan yang ada, mengubah properti visualnya, dan menjaga integritas dokumen semuanya dari aplikasi C#. Ingatlah untuk mendapatkan lisensi yang tepat untuk penggunaan produksi; Anda dapat membeli lisensi penuh atau memperoleh lisensi sementara dari halaman lisensi sementara. Mulailah mengintegrasikan pengeditan tanda tangan hari ini dan permudah alur kerja dokumen Anda.

FAQs

  • Apakah saya dapat mengedit tanda tangan dalam PDF yang sudah ditandatangani tanpa merusak keabsahan tanda tangan?
    Ya. SDK hanya memperbarui representasi visual sambil menjaga hash kriptografis tetap utuh, sehingga dokumen tetap valid.

  • Apa perbedaan antara edit Signatures in Signed PDF dan edit Signatures in Signed PDF in .NET?
    Yang pertama menjelaskan operasi generik, sedangkan yang kedua menekankan bahwa implementasinya menggunakan versi .NET dari GroupDocs.Signature Cloud SDK.

  • Apakah saya perlu menandatangani ulang PDF setelah mengedit tanda tangan?
    Tidak. SDK memodifikasi tampilan objek tanda tangan yang ada; tanda tangan digital asli tetap tidak berubah.

  • Apakah ada proyek contoh yang dapat saya unduh?
    Ya, contoh lengkap tersedia di repositori GitHub: https://github.com/groupdocs-signature-cloud/groupdocs-signature-cloud-dotnet.

Read More