Itext 7 - PdfReader не открывается с ошибкой пароля владельца

Я использую этот пример для последний Itext7 для заполнения документа, и я получаю эту ошибку: iText.Kernel.Crypto.BadPasswordException: PdfReader не открывается с паролем владельца  введите описание изображения здесь Итак, я поискал в сети, которую нашел что некоторые люди нашли решение этой ошибки с помощью PdfReader.unethicalreading = true;, но когда я пытаюсь использовать тот же код, он говорит, что в PDFReader нет определения с именем unethicalreading

Вот код, который у меня есть:

 string src = @"C:\test1.pdf";
    string dest = @"C:\Test2.pdf";
    PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
    PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true);
    IDictionary<String, PdfFormField> fields = form.GetFormFields();
    PdfFormField toSet;
    fields.TryGetValue("Name", out toSet);
    toSet.SetValue("Some text");

person Ahmad    schedule 02.01.2018    source источник


Ответы (1)


Вам нужно изменить свой код следующим образом:

string src = @"C:\test1.pdf";
string dest = @"C:\Test2.pdf";
PdfReader reader = new PdfReader(src);
reader.setUnethicalReading(true);
PdfDocument pdfDoc = new PdfDocument(reader, new PdfWriter(dest));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true);
IDictionary<String, PdfFormField> fields = form.GetFormFields();
PdfFormField toSet;
fields.TryGetValue("Name", out toSet);
toSet.SetValue("Some text");

Это позволит вам пойти против разрешений, определенных первоначальным автором документа. Это также доказывает, что установка таких разрешений устарела, потому что с тех пор, как PDF стал стандартом ISO, больше нет штрафа за удаление этих разрешений.

person Bruno Lowagie    schedule 02.01.2018