İmzalanmış bir PDF dosyasına dijital imza ekledikten sonra imzayı düzenlemek, özellikle iş kuralları değiştiğinde veya imzanın konumunun yeniden ayarlanması gerektiğinde sıkça ihtiyaç duyulan bir durumdur. GroupDocs.Signature Cloud SDK for .NET programatik olarak İmzalanmış PDF dosyalarındaki İmzaları, belgenin geçerliliğini bozmadan düzenlemenizi sağlayan sağlam bir kütüphane sunar. Bu kılavuz, yapılandırmadan güncellenmiş dosyanın indirilmesine kadar her şeyi kapsayan eksiksiz, adım adım bir uygulamayı size gösterir, böylece C# uygulamalarınıza imza düzenlemeyi güvenle entegre edebilirsiniz.
Tam Kod Örneği: İmzalı PDF’de İmzaları Düzenleme
Aşağıdaki örnek, GroupDocs.Signature Cloud SDK for .NET kullanarak İmzalı PDF’de imzaları nasıl düzenleyeceğinizi gösterir.
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);
}
}
Not: Bu kod örneği temel işlevselliği gösterir. Projenizde kullanmadan önce, dosya yollarını ve yapılandırma değerlerini gerçek ortamınıza uygun şekilde güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi belgeler adresine bakın veya destek ekibi ile iletişime geçin.
REST API üzerinden İmza Düzenleme için cURL Komutları
Aşağıda, REST API’yi kullanarak İmzalı PDF’de İmzaları düzenleme işlemini aynı şekilde gerçekleştiren bir dizi cURL komutu bulunmaktadır.
İlk olarak, bir erişim belirteci alın.
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"
}'
Kaynak PDF’yi bulut depolamaya yükleyin.
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"
İlk imzayı güncelle (örnek bir metin imzasını değiştirir).
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"
}
}'
Güncellenmiş PDF’yi indirin.
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.pdf
Daha fazla ayrıntı için, resmi API belgelerine bakın.
C#‘da İmza Değişikliğini Anlamak
Aşağıda, sağlanan C# kodunun İmzalı PDF iş akışında İmzaları düzenleme sürecini nasıl gerçekleştirdiğine dair kısa bir özet bulunmaktadır.
- Kimlik Doğrulamayı Yapılandır -
ConfigurationnesnesiClientIdveClientSecretdeğerleriyle doldurulur. Bu, bulut hizmetiyle güvenli bir oturum oluşturur.
var config = new Configuration { ClientId = "YOUR_CLIENT_ID", ClientSecret = "YOUR_CLIENT_SECRET" };
- API Örneklerini Oluşturun -
SignatureApiveStorageApiyapılandırma kullanılarak örneklenir, imza‑ile ilgili ve depolama‑ile ilgili uç noktalara erişim sağlar.
var signatureApi = new SignatureApi(config);
var storageApi = new StorageApi(config);
- Eksikse Yükle - Kod,
input.pdfdosyasının bulut depolamada mevcut olup olmadığını kontrol eder; eğer yoksa, dosyayıUploadFilekullanarak yükler. Bu, sonraki işlemlerin bir kaynak belgeye sahip olmasını sağlar.
storageApi.UploadFile(new UploadFileRequest(new UploadFile { Path = inputFilePath, File = fileStream }));
- Mevcut İmzaları Al -
GetSignaturesbelgedeki tüm imzaları alır. İlk imza düzenleme için seçilir veSignatureIdsaklanır.
var signaturesResponse = signatureApi.GetSignatures(getSignaturesRequest);
var signatureToEdit = signaturesResponse.Signatures[0];
Güncellenmiş Seçenekleri Hazırla - Yeni bir
SignTextOptionsnesnesi mevcut özellikleri kopyalar ve metni, konumu ve yazı tipini değiştirir.SignatureIdvePageNumberdoğru imzayı hedeflemek için korunur.var textOptions = new SignTextOptions { Text = "Edited Signature Text", Left = signatureToEdit.Left + 10, /* ... */ };Güncellemeyi Yürüt -
UpdateSignaturesunucuya değiştirilmiş seçenekleri gönderir, bu da imzayı yeniden yazar ve PDF’in geri kalanını dokunulmaz bırakır.
var updateResponse = signatureApi.UpdateSignature(updateSignatureRequest);
- İndirme Sonucu - Son olarak, güncellenmiş PDF depolamadan yerel dosya sistemine indirilir.
using (var downloadStream = storageApi.DownloadFile(downloadRequest))
Sınıflar ve yöntemlerin tam listesi için, API referansı adresine bakın.
Ortamı Hazır Hale Getirme
Kod yazmaya başlamadan önce geliştirme ortamınızı hazırlayın.
- SDK’yı NuGet aracılığıyla kurun
dotnet add package GroupDocs.signature-Cloud
Ayrıca en son paketi sürüm sayfası adresinden indirebilirsiniz.
Set Up .NET Runtime - Kütüphane .NET 6.0 veya daha yenisini gerektirir. Projenizin uyumlu bir çerçeveye hedeflendiğinden emin olun.
Bir GroupDocs Cloud Account oluşturun - GroupDocs portalına kaydolun ve
ClientIdveClientSecretdeğerlerinizi edinin. Bu kimlik bilgileri her API çağrısı için gereklidir.Kimlik Bilgilerini Yapılandırın - Kimlik bilgilerini güvenli bir şekilde depolayın, örneğin
appsettings.jsonveya ortam değişkenlerinde, veConfigurationnesnesini oluştururken onlara referans verin.Bağlantıyı Doğrula - Kimlik bilgilerinizin geçerli olduğunu ve hizmetin erişilebilir olduğunu doğrulamak için basit bir istek çalıştırın (ör.,
storageApi.ObjectExists).
Bu adımları tamamladıktan sonra, kod örneğini çalıştırmaya ve imzaları düzenlemeye hazırsınız.
Sonuç
İmzalı PDF belgelerinde İmzaları düzenlemek, GroupDocs.Signature Cloud SDK for .NET ile oldukça basittir. Yukarıdaki adımları izleyerek mevcut bir imzayı bulabilir, görsel özelliklerini değiştirebilir ve belge bütünlüğünü bir C# uygulamasından koruyabilirsiniz. Üretim kullanımı için uygun bir lisans almayı unutmayın; tam bir lisans satın alabilir veya geçici bir lisansı geçici lisans sayfası üzerinden edinebilirsiniz. İmza düzenlemeyi bugün entegre etmeye başlayın ve belge iş akışlarınızı hızlandırın.
FAQs
İmzalı PDF’deki İmzaları, imzanın geçerliliğini bozmadan düzenleyebilir miyim?
Evet. SDK yalnızca görsel temsili günceller ve kriptografik hash’i aynı tutar, böylece belge geçerli kalır.Signed PDF’de İmzaları Düzenleme ile .NET’te Signed PDF’de İmzaları Düzenleme arasındaki fark nedir?
İlki genel işlemi tanımlarken, ikincisi uygulamanın GroupDocs.Signature Cloud SDK’nın .NET sürümünü kullandığını vurgular.PDF’yi bir imzayı düzenledikten sonra yeniden imzalamam gerekiyor mu?
Hayır. SDK, mevcut imza nesnesinin görünümünü değiştirir; orijinal dijital imza değişmeden kalır.İndirilebilecek bir örnek proje var mı?
Evet, tam bir örnek GitHub deposunda mevcuttur: https://github.com/groupdocs-signature-cloud/groupdocs-signature-cloud-dotnet.
