/// <summary> /// Initialize the PDF signature field. /// </summary> private void InitSignatureField(PdfStamper stamper) { if (_acroFieldsWorker.HasSignatureField(SignatureFieldName)) { _signatureAppearance.SetVisibleSignature(SignatureFieldName); } else { if (!string.IsNullOrWhiteSpace(SignatureFieldName) && _acroFieldsWorker.HasField(SignatureFieldName)) { var textField = _acroFieldsWorker.FieldLocationByName(SignatureFieldName); _signatureAppearance.SetVisibleSignature( textField.Rectangle, textField.Page, _signatureAppearance.GetNewSigName() ); stamper.FormFlattening = true; stamper.PartialFormFlattening(SignatureFieldName); } else if (SignatureBox != null) { _signatureAppearance.SetVisibleSignature( SignatureBox, // reader.NumberOfPages, 1, _signatureAppearance.GetNewSigName() ); stamper.FormFlattening = true; // stamper.PartialFormFlattening(SignatureFieldName); } else { throw new InvalidOperationException("field does not exist"); } } }