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.
- Konfigurasi Otentikasi - Objek
Configurationdiisi denganClientIddanClientSecret. Ini menetapkan sesi aman dengan layanan cloud.
var config = new Configuration { ClientId = "YOUR_CLIENT_ID", ClientSecret = "YOUR_CLIENT_SECRET" };
- Buat Instance API -
SignatureApidanStorageApidiinstansiasi menggunakan konfigurasi, memberikan akses ke endpoint yang terkait dengan tanda tangan dan penyimpanan.
var signatureApi = new SignatureApi(config);
var storageApi = new StorageApi(config);
- Upload Jika Tidak Ada - Kode memeriksa apakah
input.pdfada di penyimpanan cloud; jika tidak, ia mengunggah file menggunakanUploadFile. Ini memastikan operasi selanjutnya memiliki dokumen sumber.
storageApi.UploadFile(new UploadFileRequest(new UploadFile { Path = inputFilePath, File = fileStream }));
Mengambil Tanda Tangan yang Ada -
GetSignaturesmengambil semua tanda tangan dalam dokumen. Tanda tangan pertama dipilih untuk diedit, danSignatureId-nya disimpan.var signaturesResponse = signatureApi.GetSignatures(getSignaturesRequest); var signatureToEdit = signaturesResponse.Signatures[0];Siapkan Opsi yang Diperbarui - Sebuah objek
SignTextOptionsbaru menyalin properti yang ada dan mengubah teks, posisi, serta font.SignatureIddanPageNumberdipertahankan untuk menargetkan tanda tangan yang tepat.var textOptions = new SignTextOptions { Text = "Edited Signature Text", Left = signatureToEdit.Left + 10, /* ... */ };Eksekusi Pembaruan -
UpdateSignaturemengirim opsi yang dimodifikasi ke server, yang menulis ulang tanda tangan sambil membiarkan sisanya dari PDF tidak berubah.var updateResponse = signatureApi.UpdateSignature(updateSignatureRequest);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.
- Instal SDK melalui NuGet
dotnet add package GroupDocs.signature-Cloud
Anda juga dapat mengunduh paket terbaru dari halaman rilis.
Siapkan .NET Runtime - Perpustakaan memerlukan .NET 6.0 atau yang lebih baru. Pastikan proyek Anda menargetkan kerangka kerja yang kompatibel.
Buat Akun GroupDocs Cloud - Daftar di portal GroupDocs dan dapatkan
ClientIddanClientSecretAnda. Kredensial ini diperlukan untuk setiap panggilan API.Konfigurasi Kredensial - Simpan kredensial dengan aman, misalnya di
appsettings.jsonatau variabel lingkungan, dan referensikan mereka saat membangun objekConfiguration.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.
