Как я могу защитить PDF-файл, подписанный с помощью iTextSharp? - PullRequest
0 голосов
/ 23 апреля 2019

Я подписываю документ в формате PDF с помощью iTextSharp.Он работает нормально, но я хочу защитить этот файл, я хочу, чтобы этот pdf-подпись не мог быть напечатан, скопирован или подписан снова, как я могу это сделать?

Я пробовал с

PdfEncryptor.Encrypt(
    reader,
    new FileStream(this.outputPDF, FileMode.Create, FileAccess.Write),
    true,
    null,
    null,
    PdfWriter.AllowFillIn | PdfWriter.AllowScreenReaders);

но не работает, он говорит:

iTextSharp.text.DocumentException: 'Исходный документ был повторно использован.Прочитайте это снова из файла. '

public void Sign(string SigReason, string SigContact, string SigLocation, bool visible)
        {
            PdfReader reader = new PdfReader(this.inputPDF);
/*ERROR-->*/PdfEncryptor.Encrypt(reader, new FileStream(this.outputPDF, FileMode.Create, FileAccess.Write), true, null, null, PdfWriter.AllowFillIn | PdfWriter.AllowScreenReaders);
            PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(this.outputPDF, FileMode.Create, FileAccess.Write), '\0', null, true);
            st.MoreInfo = this.metadata.getMetaData();
            st.XmpMetadata = this.metadata.getStreamedMetaData();
            PdfSignatureAppearance sap = st.SignatureAppearance;

            sap.SetCrypto(this.myCert.Akp, this.myCert.Chain, null, PdfSignatureAppearance.WINCER_SIGNED);
            sap.Reason = SigReason;
            sap.Contact = SigContact;
            sap.Location = SigLocation;

            if (visible)
                sap.SetVisibleSignature(new iTextSharp.text.Rectangle(100, 100, 250, 150), 1, null);

            st.Close();

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...