Advertisement
Guest User

Aspose - Issue with TextBoxField

a guest
Aug 14th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.77 KB | None | 0 0
  1. public byte[] AddTextBoxToPdfFile(byte[] currentPDF, SignatureInformation signature)
  2. {
  3.     Aspose.Pdf.Document document = new Aspose.Pdf.Document(new MemoryStream(currentPDF));
  4.     TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(signature.IdCase);
  5.     documentPdf.Pages.Accept(textFragmentAbsorber);
  6.  
  7.     TextFragmentCollection initialCollection = textFragmentAbsorber.TextFragments;
  8.     if (initialCollection.Count <= 0) return currentPDF;
  9.     TextFragment fragment = initialCollection[1];
  10.  
  11.     var signatureRectangle = SetupDefaultSignatureRectangle(fragment);
  12.     var textBoxField = new TextBoxField(documentPdf, signatureRectangle)
  13.     {
  14.         PartialName = signature.IdCase
  15.     };
  16.     documentPdf.Form.Add(textBoxField, fragment.Page.Number);
  17.  
  18.     var rectangleForSignerName = CreateRectangleUnder(signatureRectangle);
  19.     var signerBoxField = new TextBoxField(documentPdf, rectangleForSignerName)
  20.     {
  21.         PartialName = signature.IdSignatureCase
  22.     };
  23.     documentPdf.Form.Add(signerBoxField, fragment.Page.Number);
  24.  
  25.     var rectangleForDate = CreateRectangleUnder(rectangleForSignerName);
  26.     var dateField = new TextBoxField(documentPdf, rectangleForDate)
  27.     {
  28.         PartialName = signature.IdDateCase
  29.     };
  30.     documentPdf.Form.Add(dateField, fragment.Page.Number);
  31.  
  32.     var turin = Path.GetTempFileName() + EXTENSION_PDF;
  33.     documentPdf.Save(turin);
  34.  
  35.     return File.ReadAllBytes(turin);
  36. }
  37.  
  38. private Rectangle SetupDefaultSignatureRectangle(TextFragment fragment)
  39. {
  40.     return new Rectangle(
  41.         fragment.Position.XIndent,
  42.         fragment.Position.YIndent + 25,
  43.         UPPER_RIGHT_X,
  44.         fragment.Position.YIndent - 100);
  45. }
  46.  
  47. private Rectangle CreateRectangleUnder(Rectangle upperRectangle)
  48. {
  49.     return new Rectangle(
  50.         upperRectangle.LLX,
  51.         upperRectangle.LLY - MARGIN,
  52.         UPPER_RIGHT_X,
  53.         upperRectangle.LLY - MARGIN - 15);
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement