Itext 7 - PdfReader未使用所有者密码错误打开

问题描述 投票:1回答:1

我使用This example最新的Itext7填写文档,我收到此错误:iText.Kernel.Crypto.BadPasswordException:PdfReader没有打开所有者密码enter image description here所以我环顾网络我发现有些人找到解决方案这个错误使用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");
c# asp.net pdf-generation itext7 pdf-reader
1个回答
0
投票

您需要像这样更改代码:

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标准,因此删除这些权限不再是一种惩罚。

© www.soinside.com 2019 - 2024. All rights reserved.