تحرير توقيع رقمي بعد توقيع ملف 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. باتباع الخطوات المذكورة أعلاه، يمكنك تحديد توقيع موجود، تعديل خصائصه البصرية، والحفاظ على سلامة المستند—all from a C# application. تذكر تأمين ترخيص مناسب للاستخدام في الإنتاج؛ يمكنك شراء ترخيص كامل أو الحصول على ترخيص مؤقت من صفحة الترخيص المؤقت. ابدأ بدمج تحرير التوقيع اليوم وتبسيط سير عمل المستندات الخاصة بك.
الأسئلة الشائعة
هل يمكنني تعديل التوقيعات في ملف 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.
