• 创建新PDF PDF权限控制


            /// <summary>
            /// 创建新PDF(权限控制)
            /// 至于异常处理自己看着加(会损失一点性能)
            /// </summary>
            /// <param name="oldFile">原文件路径</param>
            /// <param name="newFile">目标文件路径</param>
            public static void SaveNewPDF(string oldFile, string newFile)
            {
                try
                {
                    //创建PDF阅读器
                    PdfReader reader = new PdfReader(oldFile);
                    //创建一个新文档
                    Document document = new Document();
                    //创建原文件文件流
                    FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write);
    
                    //创建PDF写入器
                    PdfWriter writer = PdfWriter.GetInstance(document, fs);
                    /*
                     * PDF浏览权限设置
                     * true、用户密码、所有者密码、0
                     * */
                    writer.SetEncryption(true, null, null, 0);
    
                    //打开文档进行编辑
                    document.Open();
                    //创建PDF内容目标对象
                    PdfContentByte cb = writer.DirectContent;
                    //获取原文件的总页数
                    int pagecount = reader.NumberOfPages;
                    //导入原PDF文件到新文件
                    for (int i = 1; i <= pagecount; i++)
                    {
                        //设置页大小
                        document.SetPageSize(reader.GetPageSizeWithRotation(i));
                        //开辟一个新页
                        document.NewPage();
                        //获取当前页
                        PdfImportedPage page = writer.GetImportedPage(reader, i);
                        cb.AddTemplate(page, 0, 0);
                    }
    
                    //关闭文档对象
                    document.Close();
                    //关闭文件流
                    fs.Close();
                    //关闭写入器
                    writer.Close();
                    //关闭读取器
                    reader.Close();
                }
                catch (Exception)
                {
                    throw;
                }
    
            }
    
    
          
    

      

  • 相关阅读:
    题解-AtCoder ARC-083F Collecting Balls
    题解-CTS2019氪金手游
    题解-CTS2019随机立方体
    题解-APIO2019路灯
    题解-APIO2019桥梁
    vue-property-decorator 源码阅读
    如何在Vue项目中使用TypeScript
    在 Vue+TypeScript 项目中,如何配置 ESLint 和 Prettier
    JavaScript 原型和原型链
    pre-commit + imagemin 实现图片自动压缩
  • 原文地址:https://www.cnblogs.com/chenghu/p/3042433.html
Copyright © 2020-2023  润新知