ویرایش یک امضای دیجیتال پس از امضای یک PDF یک نیاز رایج است، بهویژه زمانی که قوانین کسبوکار تغییر میکند یا نیاز به جابجایی امضا باشد. GroupDocs.Signature Cloud SDK for .NET یک کتابخانه قدرتمند فراهم میکند که به شما امکان میدهد امضاها را بهصورت برنامهنویسی در فایلهای PDF امضا شده ویرایش کنید بدون اینکه اعتبار سند را به خطر بیندازید. این راهنما شما را گامبهگام از پیکربندی تا دانلود فایل بهروز شده راهنمایی میکند، تا بتوانید ویرایش امضا را با اطمینان در برنامههای C# خود ادغام کنید.
مثال کامل کد: ویرایش امضاها در PDF امضا شده
مثال زیر نشان میدهد که چگونه میتوان امضاها را در PDF امضا شده با استفاده از 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);
}
}
توجه: این مثال کد عملکرد اصلی را نشان میدهد. قبل از استفاده از آن در پروژه خود، اطمینان حاصل کنید که مسیرهای فایل و مقادیر پیکربندی را بهگونهای بهروزرسانی کنید که با محیط واقعی شما مطابقت داشته باشد، بررسی کنید که تمام وابستگیهای مورد نیاز بهدرستی نصب شدهاند، و بهطور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک به تیم پشتیبانی مراجعه نمایید.
دستورات cURL برای ویرایش امضاها از طریق REST API
در زیر مجموعهای از دستورات cURL آورده شده است که همان عملیات ویرایش امضاها در PDF امضا شده را با استفاده از REST API انجام میدهند.
ابتدا یک توکن دسترسی دریافت کنید.
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"
}'
PDF منبع را به ذخیرهسازی ابری بارگذاری کنید.
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"
بهروزرسانی اولین امضا (مثال یک امضای متنی را تغییر میدهد).
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"
}
}'
PDF بهروز شده را دانلود کنید.
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.pdf
برای جزئیات بیشتر، مستندات رسمی API را ببینید.
درک تغییر امضا در C#
در زیر یک تجزیه و تحلیل مختصر از این که چگونه کد C# ارائهشده، ویرایش امضاها را در جریان کار PDF امضاشده انجام میدهد، آمده است.
- پیکربندی احراز هویت - شیء
ConfigurationباClientIdوClientSecretپر میشود. این یک جلسه امن با سرویس ابری ایجاد میکند.
var config = new Configuration { ClientId = "YOUR_CLIENT_ID", ClientSecret = "YOUR_CLIENT_SECRET" };
- ایجاد نمونههای API -
SignatureApiوStorageApiبا استفاده از پیکربندی نمونهسازی میشوند و دسترسی به نقاط انتهایی مرتبط با امضا و ذخیرهسازی را فراهم میکنند.
var signatureApi = new SignatureApi(config);
var storageApi = new StorageApi(config);
- بارگذاری در صورت عدم وجود - کد بررسی میکند که آیا
input.pdfدر ذخیرهسازی ابری وجود دارد یا خیر؛ اگر وجود نداشته باشد، فایل را با استفاده ازUploadFileبارگذاری میکند. این اطمینان میدهد که عملیاتهای بعدی یک سند منبع داشته باشند.
storageApi.UploadFile(new UploadFileRequest(new UploadFile { Path = inputFilePath, File = fileStream }));
دریافت امضاهای موجود -
GetSignaturesتمام امضاها را در سند بازیابی میکند. اولین امضا برای ویرایش انتخاب میشود وSignatureIdآن ذخیره میشود.var signaturesResponse = signatureApi.GetSignatures(getSignaturesRequest); var signatureToEdit = signaturesResponse.Signatures[0];آمادهسازی گزینههای بهروز شده - یک شیء جدید
SignTextOptionsویژگیهای موجود را کپی میکند و متن، موقعیت و قلم را تغییر میدهد.SignatureIdوPageNumberبرای هدفگیری امضای صحیح حفظ میشوند.var textOptions = new SignTextOptions { Text = "Edited Signature Text", Left = signatureToEdit.Left + 10, /* ... */ };اجرای بهروزرسانی -
UpdateSignatureگزینههای تغییر یافته را به سرور ارسال میکند، که امضا را بازنویسی میکند در حالی که بقیه PDF دستنخورده میماند.var updateResponse = signatureApi.UpdateSignature(updateSignatureRequest);نتیجه دانلود - در نهایت، PDF بهروز شده از ذخیرهسازی به سیستم فایل محلی دانلود میشود.
using (var downloadStream = storageApi.DownloadFile(downloadRequest))
برای دریافت فهرست کامل کلاسها و متدها، به مرجع API مراجعه کنید.
آمادهسازی محیط
قبل از نوشتن هرگونه کد، محیط توسعه خود را آماده کنید.
- نصب SDK از طریق NuGet
dotnet add package GroupDocs.signature-Cloud
همچنین میتوانید آخرین بسته را از صفحه انتشار دانلود کنید.
راهاندازی .NET Runtime - کتابخانه به .NET 6.0 یا بالاتر نیاز دارد. اطمینان حاصل کنید که پروژه شما هدفگذاری یک چارچوب سازگار را دارد.
ایجاد یک حساب GroupDocs Cloud - در پورتال GroupDocs ثبتنام کنید و
ClientIdوClientSecretخود را دریافت کنید. این اعتبارها برای هر فراخوانی API مورد نیاز هستند.پیکربندی اعتبارها - اعتبارها را بهصورت ایمن ذخیره کنید، بهعنوان مثال در
appsettings.jsonیا متغیرهای محیطی، و هنگام ساخت شیءConfigurationبه آنها ارجاع دهید.اتصال را تأیید کنید - یک درخواست ساده (به عنوان مثال،
storageApi.ObjectExists) اجرا کنید تا تأیید شود که اعتبارنامههای شما معتبر هستند و سرویس قابل دسترسی است.
با تکمیل این مراحل، آمادهاید تا مثال کد را اجرا کنید و شروع به ویرایش امضاها کنید.
نتیجهگیری
ویرایش امضاها در اسناد PDF امضا شده بهراحتی با GroupDocs.Signature Cloud SDK for .NET امکانپذیر است. با دنبال کردن مراحل بالا، میتوانید یک امضای موجود را پیدا کنید، ویژگیهای بصری آن را تغییر دهید و یکپارچگی سند را از یک برنامه C# حفظ کنید. بهخاطر داشته باشید که برای استفاده در محیط تولید، یک لایسنس مناسب تهیه کنید؛ میتوانید یک لایسنس کامل خریداری کنید یا از صفحه لایسنس موقت یک لایسنس موقت دریافت کنید. امروز شروع به ادغام ویرایش امضا کنید و جریان کاری اسناد خود را بهینه کنید.
سوالات متداول
آیا میتوانم امضاها را در PDF امضا شده ویرایش کنم بدون اینکه اعتبار امضا خراب شود؟
بله. SDK فقط نمای بصری را بهروزرسانی میکند در حالی که هش رمزنگاری شده را دست نخورده نگه میدارد، بنابراین سند معتبر باقی میماند.ویرایش Signatures در Signed PDF و ویرایش Signatures در Signed PDF در .NET چه تفاوتی دارند؟
اولی عملیات عمومی را توصیف میکند، در حالی که دومی تأکید میکند که پیادهسازی از نسخه .NET GroupDocs.Signature Cloud SDK استفاده میکند.آیا پس از ویرایش امضا نیاز به امضای مجدد PDF دارم؟
خیر. SDK ظاهر شیء امضای موجود را تغییر میدهد؛ امضای دیجیتال اصلی بدون تغییر میماند.آیا پروژه نمونهای برای دانلود وجود دارد؟
بله، یک نمونه کامل در مخزن GitHub موجود است: https://github.com/groupdocs-signature-cloud/groupdocs-signature-cloud-dotnet.
