addSignature method
Adds a signature to the document using the given request.
Implementation
Future<PdfSignatureRequest> addSignature(PdfSignatureRequest request) async {
_ensureNotDisposed();
_validatePage(request.pageNumber);
final page = pages[request.pageNumber - 1];
final bounds = request.bounds.toPdfRect(page);
final field = PdfSignatureField.bounds(
pageNumber: request.pageNumber,
fieldName: request.fieldName,
bounds: bounds,
drawAppearance: _resolveAppearanceDrawer(
request: request,
page: page,
),
);
final signature = PdfSignatureConfig(
name: request.name,
reason: request.reason,
location: request.location,
contactInfo: request.contactInfo,
signingTime: request.signingTime,
);
if (request.docMdpPermissionP != null) {
signature.docMdpPermissionP = request.docMdpPermissionP;
}
final service = PdfSignatureService();
_bytes = await service.signBytes(
inputBytes: _bytes,
externalSigner: request.signer.externalSigner,
field: field,
signature: signature,
appearance: request.appearance,
timestampProvider: request.timestampProvider,
contentsReserveSize: request.contentsReserveSize,
byteRangeDigits: request.byteRangeDigits,
);
_document = PdfDocument.parseFromBytes(_bytes);
return request;
}