การแก้ไขลายเซ็นดิจิทัลหลังจากที่ 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 ที่มีลายเซ็น
- กำหนดค่าการรับรองตัวตน -
Configurationobject ถูกกำหนดค่าโดยใช้ClientIdและClientSecret. สิ่งนี้ทำให้สร้างเซสชันที่ปลอดภัยกับบริการคลาวด์.
var config = new Configuration { ClientId = "YOUR_CLIENT_ID", ClientSecret = "YOUR_CLIENT_SECRET" };
- Create API Instances -
SignatureApiและStorageApiถูกสร้างขึ้นโดยใช้การกำหนดค่า ทำให้เข้าถึง endpoint ที่เกี่ยวข้องกับลายเซ็นและการจัดเก็บได้
var signatureApi = new SignatureApi(config);
var storageApi = new StorageApi(config);
- Upload If Missing - โค้ดตรวจสอบว่า
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 reference.
เตรียมสภาพแวดล้อมให้พร้อม
เตรียมสภาพแวดล้อมการพัฒนาของคุณก่อนเขียนโค้ดใด ๆ.
- ติดตั้ง SDK ผ่าน NuGet
dotnet add package GroupDocs.signature-Cloud
คุณยังสามารถดาวน์โหลดแพคเกจล่าสุดจาก หน้า release.
ตั้งค่า .NET Runtime - ไลบรารีต้องการ .NET 6.0 หรือใหม่กว่า. ตรวจสอบให้แน่ใจว่าโครงการของคุณตั้งเป้าหมายเป็นเฟรมเวิร์กที่เข้ากันได้.
Create a GroupDocs Cloud Account - ลงทะเบียนที่พอร์ทัลของ GroupDocs และรับ
ClientIdและClientSecretของคุณ คำรับรองเหล่านี้จำเป็นสำหรับทุกการเรียก APIConfigure Credentials - จัดเก็บข้อมูลประจำตัวอย่างปลอดภัย เช่น ใน
appsettings.jsonหรือ ตัวแปรสภาพแวดล้อม และอ้างอิงพวกมันเมื่อสร้างอ็อบเจกต์Configurationตรวจสอบการเชื่อมต่อ - เรียกคำขออย่างง่าย (เช่น
storageApi.ObjectExists) เพื่อยืนยันว่าข้อมูลประจำตัวของคุณถูกต้องและบริการสามารถเข้าถึงได้.
เมื่อทำขั้นตอนเหล่านี้เสร็จแล้ว คุณพร้อมที่จะรันตัวอย่างโค้ดและเริ่มแก้ไขลายเซ็น.
สรุป
การแก้ไขลายเซ็นในเอกสาร PDF ที่มีลายเซ็นเป็นเรื่องง่ายด้วย GroupDocs.Signature Cloud SDK for .NET. โดยทำตามขั้นตอนข้างต้น คุณสามารถค้นหาลายเซ็นที่มีอยู่ ปรับเปลี่ยนคุณสมบัติดีไซน์ของมัน และรักษาความสมบูรณ์ของเอกสารทั้งหมดจากแอปพลิเคชัน C#. อย่าลืมจัดหาลิขสิทธิ์ที่เหมาะสมสำหรับการใช้งานในสภาพแวดล้อมการผลิต; คุณสามารถซื้อไลเซนส์เต็มรูปแบบหรือรับไลเซนส์ชั่วคราวจาก หน้าลิขสิทธิ์ชั่วคราว. เริ่มผสานการแก้ไขลายเซ็นวันนี้และทำให้กระบวนการทำงานกับเอกสารของคุณเป็นระเบียบมากขึ้น.
คำถามที่พบบ่อย
ฉันสามารถแก้ไขลายเซ็นใน PDF ที่ลงนามแล้วโดยไม่ทำให้ความถูกต้องของลายเซ็นเสียหายได้หรือไม่?
ได้. SDK จะอัปเดตเฉพาะการแสดงผลภาพเท่านั้นในขณะที่รักษาแฮชเชิงคริปโตให้คงที่ ดังนั้นเอกสารจะยังคงเป็นที่ถูกต้อง.ความแตกต่างระหว่าง edit Signatures in Signed PDF กับ edit Signatures in Signed PDF in .NET คืออะไร?
ตัวแรกอธิบายการทำงานทั่วไป ส่วนตัวที่สองเน้นว่าการใช้งานใช้เวอร์ชัน .NET ของ GroupDocs.Signature Cloud SDK.ฉันจำเป็นต้องเซ็น PDF ใหม่หลังจากแก้ไขลายเซ็นหรือไม่?
ไม่. SDK ปรับเปลี่ยนลักษณะของอ็อบเจ็กต์ลายเซ็นที่มีอยู่; ลายเซ็นดิจิทัลต้นฉบับยังคงไม่เปลี่ยนแปลง.มีโครงการตัวอย่างที่ฉันสามารถดาวน์โหลดได้หรือไม่?
ใช่, ตัวอย่างเต็มรูปแบบพร้อมให้ดาวน์โหลดในที่เก็บ GitHub: https://github.com/groupdocs-signature-cloud/groupdocs-signature-cloud-dotnet
