Как установить размещение цифровой подписи PDFSharp на другой странице?C#

Место общения программистов C#
Ответить
Anonymous
 Как установить размещение цифровой подписи PDFSharp на другой странице?

Сообщение Anonymous »

Я пытался подписать документ PDF с сертификатом и добавить подпись после текста на последней странице. Инструмент должен быть с открытым исходным кодом. />https://github.com/kds/pdfsharp/tree/ec ... 07ab6e/src
Как я понял, может измениться позиция подписи в 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 на

Код: Выделить всё

XGraphics gfx = XGraphics.FromPdfPage(_document.Pages[_document.Pages.Count - 1]);

Но знак всегда появлялся в углу последней страницы. Форма Xform всегда представляет только первую страницу?

Подробнее здесь: https://stackoverflow.com/questions/739 ... other-page
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»