Chỉnh sửa chữ ký số sau khi một PDF đã được ký là một yêu cầu thường gặp, đặc biệt khi các quy tắc kinh doanh thay đổi hoặc khi cần di chuyển lại vị trí chữ ký. GroupDocs.Signature Cloud SDK for .NET cung cấp một thư viện mạnh mẽ cho phép bạn chỉnh sửa chữ ký trong các tệp PDF đã ký một cách lập trình mà không làm mất tính hợp lệ của tài liệu. Hướng dẫn này sẽ đưa bạn qua một triển khai đầy đủ, từng bước một, bao gồm mọi thứ từ cấu hình đến việc tải xuống tệp đã cập nhật, để bạn có thể tích hợp việc chỉnh sửa chữ ký vào các ứng dụng C# của mình một cách tự tin.
Ví dụ mã hoàn chỉnh: Chỉnh sửa chữ ký trong PDF đã ký
Ví dụ sau đây minh họa cách chỉnh sửa chữ ký trong PDF đã ký bằng cách sử dụng 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);
}
}
Lưu ý: Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.
Các lệnh cURL để chỉnh sửa Chữ ký qua REST API
Dưới đây là một tập hợp các lệnh cURL thực hiện cùng một thao tác chỉnh sửa Chữ ký trong PDF đã ký bằng REST API.
Đầu tiên, lấy token truy cập.
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"
}'
Tải lên PDF nguồn lên bộ nhớ đám mây.
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"
Cập nhật chữ ký đầu tiên (ví dụ sửa đổi một chữ ký văn bản).
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"
}
}'
Tải xuống PDF đã cập nhật.
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.pdf
Để biết thêm chi tiết, xem tài liệu API chính thức.
Hiểu về việc chỉnh sửa chữ ký trong C#
Dưới đây là bản tóm tắt ngắn gọn về cách mã C# được cung cấp thực hiện quy trình chỉnh sửa Chữ ký trong PDF đã ký.
Cấu hình xác thực - Đối tượng
Configurationđược điền giá trị choClientIdvàClientSecret. Điều này thiết lập một phiên làm việc bảo mật với dịch vụ đám mây.var config = new Configuration { ClientId = "YOUR_CLIENT_ID", ClientSecret = "YOUR_CLIENT_SECRET" };Tạo các thể hiện API -
SignatureApivàStorageApiđược khởi tạo bằng cách sử dụng cấu hình, cho phép truy cập vào các endpoint liên quan đến chữ ký và lưu trữ.
var signatureApi = new SignatureApi(config);
var storageApi = new StorageApi(config);
- Tải lên nếu thiếu - Mã kiểm tra xem
input.pdfcó tồn tại trong lưu trữ đám mây không; nếu không, nó sẽ tải tệp lên bằngUploadFile. Điều này đảm bảo các thao tác tiếp theo có tài liệu nguồn.
storageApi.UploadFile(new UploadFileRequest(new UploadFile { Path = inputFilePath, File = fileStream }));
- Lấy các chữ ký hiện có -
GetSignatureslấy tất cả các chữ ký trong tài liệu. Chữ ký đầu tiên được chọn để chỉnh sửa, vàSignatureIdcủa nó được lưu trữ.
var signaturesResponse = signatureApi.GetSignatures(getSignaturesRequest);
var signatureToEdit = signaturesResponse.Signatures[0];
Chuẩn bị các tùy chọn đã cập nhật - Một đối tượng
SignTextOptionsmới sao chép các thuộc tính hiện có và thay đổi văn bản, vị trí và phông chữ.SignatureIdvàPageNumberđược giữ nguyên để nhắm mục tiêu chữ ký đúng.var textOptions = new SignTextOptions { Text = "Edited Signature Text", Left = signatureToEdit.Left + 10, /* ... */ };Thực hiện cập nhật -
UpdateSignaturegửi các tùy chọn đã chỉnh sửa tới máy chủ, máy chủ sẽ ghi lại chữ ký trong khi để nguyên phần còn lại của PDF.var updateResponse = signatureApi.UpdateSignature(updateSignatureRequest);Kết quả tải xuống - Cuối cùng, tệp PDF đã cập nhật được tải xuống từ bộ nhớ lưu trữ về hệ thống tệp cục bộ.
using (var downloadStream = storageApi.DownloadFile(downloadRequest))
Để xem danh sách đầy đủ các lớp và phương thức, tham khảo API reference.
Chuẩn bị môi trường
Chuẩn bị môi trường phát triển của bạn trước khi viết bất kỳ mã nào.
- Cài đặt SDK qua NuGet
dotnet add package GroupDocs.signature-Cloud
Bạn cũng có thể tải xuống gói mới nhất từ trang phát hành.
Cài đặt .NET Runtime - Thư viện yêu cầu .NET 6.0 trở lên. Đảm bảo dự án của bạn nhắm mục tiêu vào một framework tương thích.
Tạo tài khoản GroupDocs Cloud - Đăng ký tại cổng GroupDocs và lấy
ClientIdvàClientSecretcủa bạn. Những thông tin xác thực này cần thiết cho mọi cuộc gọi API.Configure Credentials - Lưu trữ thông tin xác thực một cách an toàn, ví dụ trong
appsettings.jsonhoặc biến môi trường, và tham chiếu chúng khi tạo đối tượngConfiguration.Xác minh kết nối - Thực hiện một yêu cầu đơn giản (ví dụ,
storageApi.ObjectExists) để xác nhận rằng thông tin đăng nhập của bạn là hợp lệ và dịch vụ có thể truy cập được.
Với các bước này đã hoàn thành, bạn đã sẵn sàng để chạy ví dụ mã và bắt đầu chỉnh sửa chữ ký.
Kết luận
Việc chỉnh sửa Chữ ký trong các tài liệu PDF đã ký là đơn giản với GroupDocs.Signature Cloud SDK for .NET. Bằng cách thực hiện các bước trên, bạn có thể tìm vị trí chữ ký hiện có, sửa đổi các thuộc tính hiển thị của nó và duy trì tính toàn vẹn của tài liệu, tất cả từ một ứng dụng C#. Hãy nhớ đảm bảo có giấy phép phù hợp cho việc sử dụng trong môi trường sản xuất; bạn có thể mua giấy phép đầy đủ hoặc nhận giấy phép tạm thời từ trang giấy phép tạm thời. Bắt đầu tích hợp việc chỉnh sửa chữ ký ngay hôm nay và tối ưu hoá quy trình làm việc với tài liệu của bạn.
Câu hỏi thường gặp
Tôi có thể chỉnh sửa Chữ ký trong PDF đã ký mà không làm mất tính hợp lệ của chữ ký không?
Có. SDK chỉ cập nhật phần hiển thị trực quan trong khi giữ nguyên hàm băm mật mã, do đó tài liệu vẫn hợp lệ.Sự khác nhau giữa edit Signatures trong Signed PDF và edit Signatures trong Signed PDF trong .NET là gì?
Câu đầu mô tả thao tác chung, trong khi câu sau nhấn mạnh rằng triển khai sử dụng phiên bản .NET của GroupDocs.Signature Cloud SDK.Tôi có cần ký lại PDF sau khi chỉnh sửa chữ ký không?
Không. SDK thay đổi giao diện của đối tượng chữ ký hiện có; chữ ký số gốc vẫn không bị thay đổi.Có dự án mẫu nào tôi có thể tải xuống không?
Có, một mẫu hoàn chỉnh có sẵn trong kho GitHub: https://github.com/groupdocs-signature-cloud/groupdocs-signature-cloud-dotnet.
