Aspose-pdf 使用了ownerPassword 的方式对PDF进行加密,如何允许打印且不需要输入密码?

您好,我使用了ownerPassword的加密方式,对编辑PDF进行了限制,但是我又不想限制PDF的打印功能,请问Aspose-pdf能满足以上需求吗,如果满足该如何实现?

@songyassen
We are looking into it and will be sharing our feedback with you shortly.

@songyassen

您可以尝试使用下面的代码片段,并让我们知道它是否可以满足您的要求。

Document pdfDocument = new Document();
pdfDocument.Pages.Add();
Facades.PdfFileSecurity security = new Facades.PdfFileSecurity(); 
Facades.DocumentPrivilege privilege = Facades.DocumentPrivilege.ForbidAll; 
privilege.AllowPrint = true; 
security.BindPdf(pdfDocument); 
security.SetPrivilege(privilege);
security.Save($"{dataDir}out.pdf");

您好,我使用的是Java语言,使用您的这段代码提示缺少class信息

当前我使用的SDK是aspose-word 23.6版本,当前的代码是

PdfSaveOptions saveOption = new PdfSaveOptions();
PdfEncryptionDetails pdfEncryptionDetails = new PdfEncryptionDetails(null, "123");
pdfEncryptionDetails.setPermissions(PdfPermissions.PRINTING);
saveOption.setEncryptionDetails(pdfEncryptionDetails);

但是效果是打印的时候需要我输入密码,想要的效果是编辑需要输入密码,但是打印不需要输入密码,请问给如何实现?

@songyassen

似乎该查询与 Aspose.Words 有关。我们正在将查询移至相应的论坛主题,您将在其中获得相应的帮助。

@songyassen 正如我所看到的,您提供的代码正是这样做的:

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.write("Hello, World!!!");

PdfSaveOptions saveOption = new PdfSaveOptions();
PdfEncryptionDetails pdfEncryptionDetails = new PdfEncryptionDetails(null, "123");
pdfEncryptionDetails.setPermissions(PdfPermissions.PRINTING);
saveOption.setEncryptionDetails(pdfEncryptionDetails);

doc.save("C:\\Temp\\out.pdf", saveOption);

out.pdf (17.3 KB)

因此,当在未输入所有者密码的情况下打开文档时,允许打印: