zoukankan      html  css  js  c++  java
  • 创建新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;
                }
    
            }
    
    
          
    

      

  • 相关阅读:
    保险
    cron表达式的用法
    Hive 学习记录
    股票的五种估值方法
    AtCoder Beginner Contest 113 A
    ZOJ 4070 Function and Function
    银行业务队列简单模拟 (数据结构题目)
    算法3-7:银行排队
    算法3-5:n阶Hanoi塔问题
    算法3-1:八进制数
  • 原文地址:https://www.cnblogs.com/chenghu/p/3042433.html
Copyright © 2011-2022 走看看