Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public byte[] AddTextBoxToPdfFile(byte[] currentPDF, SignatureInformation signature)
- {
- Aspose.Pdf.Document document = new Aspose.Pdf.Document(new MemoryStream(currentPDF));
- TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(signature.IdCase);
- documentPdf.Pages.Accept(textFragmentAbsorber);
- TextFragmentCollection initialCollection = textFragmentAbsorber.TextFragments;
- if (initialCollection.Count <= 0) return currentPDF;
- TextFragment fragment = initialCollection[1];
- var signatureRectangle = SetupDefaultSignatureRectangle(fragment);
- var textBoxField = new TextBoxField(documentPdf, signatureRectangle)
- {
- PartialName = signature.IdCase
- };
- documentPdf.Form.Add(textBoxField, fragment.Page.Number);
- var rectangleForSignerName = CreateRectangleUnder(signatureRectangle);
- var signerBoxField = new TextBoxField(documentPdf, rectangleForSignerName)
- {
- PartialName = signature.IdSignatureCase
- };
- documentPdf.Form.Add(signerBoxField, fragment.Page.Number);
- var rectangleForDate = CreateRectangleUnder(rectangleForSignerName);
- var dateField = new TextBoxField(documentPdf, rectangleForDate)
- {
- PartialName = signature.IdDateCase
- };
- documentPdf.Form.Add(dateField, fragment.Page.Number);
- var turin = Path.GetTempFileName() + EXTENSION_PDF;
- documentPdf.Save(turin);
- return File.ReadAllBytes(turin);
- }
- private Rectangle SetupDefaultSignatureRectangle(TextFragment fragment)
- {
- return new Rectangle(
- fragment.Position.XIndent,
- fragment.Position.YIndent + 25,
- UPPER_RIGHT_X,
- fragment.Position.YIndent - 100);
- }
- private Rectangle CreateRectangleUnder(Rectangle upperRectangle)
- {
- return new Rectangle(
- upperRectangle.LLX,
- upperRectangle.LLY - MARGIN,
- UPPER_RIGHT_X,
- upperRectangle.LLY - MARGIN - 15);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement