Как я понял, может измениться позиция подписи в Signaturetestconsoncons.
Код: Выделить всё
65 private static void SignExisting()
66 {
67 string text = string.Format("SignExisting.pdf", new object[0]);
68 PdfDocument pdfDocument = PdfReader.Open(new MemoryStream(Resources.doc1));
69 PdfSignatureOptions options = new PdfSignatureOptions
70 {
71 ContactInfo = "Contact Info",
72 Location = "Paris",
73 Reason = "Test signatures",
74 Rectangle = new XRect(36.0, 735.0, 200.0, 50.0),
75 AppearanceHandler = new Program.SignAppearenceHandler()
76 };
77 PdfSignatureHandler pdfSignatureHandler = new PdfSignatureHandler(Program.GetCertificate(), null, options);
78 pdfSignatureHandler.AttachToDocument(pdfDocument);
79 pdfDocument.Save(text);
80 Process.Start(text);
81 }
< /code>
Однако я не могу выбрать страницу, на которой должна быть найдена подпись, и позиция после текста. Подпись появляется на первой странице, и ее позиция должна быть установлена через код. internal override void PrepareForSave()
{
if (!this.visible)
return;
if (this.AppearanceHandler == null)
throw new Exception("AppearanceHandler is null");
PdfRectangle rect = Elements.GetRectangle(PdfAnnotation.Keys.Rect);
XForm form = new XForm(this._document, rect.Size);
XGraphics gfx = XGraphics.FromForm(form);
this.AppearanceHandler.DrawAppearance(gfx, rect.ToXRect());
form.DrawingFinished();
// Get existing or create new appearance dictionary
PdfDictionary ap = Elements[PdfAnnotation.Keys.AP] as PdfDictionary;
if (ap == null)
{
ap = new PdfDictionary(this._document);
Elements[PdfAnnotation.Keys.AP] = ap;
}
// Set XRef to normal state
ap.Elements["/N"] = form.PdfForm.Reference;
}
Код: Выделить всё
XGraphics gfx = XGraphics.FromPdfPage(_document.Pages[_document.Pages.Count - 1]);Но знак всегда появлялся в углу последней страницы. Форма Xform всегда представляет только первую страницу?
Подробнее здесь: https://stackoverflow.com/questions/739 ... other-page
Мобильная версия