首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iText7加密PdfDocument

iText7加密PdfDocument
EN

Stack Overflow用户
提问于 2022-03-15 15:27:49
回答 1查看 234关注 0票数 1

在升级iText7时,我认为需要一个EncryptionConstants.ENCRYPTION_AES_128是正确的。我也不知道如何将writerProperties添加到我的PdfDocument

旧版本

代码语言:javascript
复制
pdfDocument.Writer.SetEncryption(true, null, null, PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING);

新版本

代码语言:javascript
复制
    WriterProperties writerProperties = new WriterProperties();
writerProperties.SetStandardEncryption(null, null, EncryptionConstants.ALLOW_PRINTING | EncryptionConstants.ALLOW_COPY, EncryptionConstants.ENCRYPTION_AES_128);
EN

回答 1

Stack Overflow用户

发布于 2022-03-15 16:04:02

请检查以下代码的iText 7添加或加密与所有者和用户的密码pdf文件。

代码语言:javascript
复制
public class EncryptPdf
{
    public static readonly String DEST = "results/sandbox/security/encrypt_pdf.pdf";
    public static readonly String SRC = "../../../resources/pdfs/hello.pdf";

    public static readonly String OWNER_PASSWORD = "World";
    public static readonly String USER_PASSWORD = "Hello";

    public static void Main(String[] args)
    {
        FileInfo file = new FileInfo(DEST);
        file.Directory.Create();

        new EncryptPdf().ManipulatePdf(DEST);
    }

    protected void ManipulatePdf(String dest)
    {
        PdfDocument document = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest,
            new WriterProperties().SetStandardEncryption(
                Encoding.UTF8.GetBytes(USER_PASSWORD),
                Encoding.UTF8.GetBytes(OWNER_PASSWORD),
                EncryptionConstants.ALLOW_PRINTING,
                EncryptionConstants.ENCRYPTION_AES_128 | EncryptionConstants.DO_NOT_ENCRYPT_METADATA
            )));
        document.Close();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71484814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档