[c#]删除PDF权限密码

 

软件介绍:

因为经常会有下载来的文件有各种编辑限制密码,就自己研究写了一个将已加密的PDF转化成未加密的PDF文件

无需密码去除PDF文件的编辑、打印、修改等权限。

不支持有[打开密码]的文件!!!

主要的功能实现

1、实现文件拖拽功能,将文件拖拽到软件上

2、判断拖拽的文件是否是文件,不能为文件夹,且文件必须是pdf格式

3、对文件进行转化成未加密的pdf文件

主要源码:

判断拖拽的文件是否是文件,不能为文件夹,且文件必须是pdf格式

string strPdf = textBox_PDFPath.Text;


          if (Directory.Exists(strPdf)){
                MessageBox.Show("请放入文件");
          }
            else if (File.Exists(strPdf))
            {
                string extension = Path.GetExtension(strPdf);

                if (extension != ".pdf")
                {
                    MessageBox.Show("请选择pdf文件");
                }
                else
                {                    
                    bool bRet  = deletePDFEncrypt(strPdf, System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\Un_" + Path.GetFileName(strPdf));
                    if(bRet == true)
                        label2.Text = "权限密码去除成功";
                }
            }
            else
            {
                MessageBox.Show("请放入文件");
            }

对文件进行转化成未加密的pdf文件


private static bool deletePDFEncrypt(string sourceFullName, string newFullName)
        {
            if (string.IsNullOrEmpty(sourceFullName) || string.IsNullOrEmpty(newFullName))
            {
                throw new Exception("源文件路径或目标文件路径不能为空或null.");
            }
            //Console.WriteLine("读取PDF文档");
            try
            {
                // 创建一个PdfReader对象
                PdfReader reader = new PdfReader(sourceFullName);
                PdfReader.unethicalreading = true;
                // 获得文档页数
                int n = reader.NumberOfPages;
                // 获得第一页的大小
                iTextSharp.text.Rectangle pagesize = reader.GetPageSize(1);
                float width = pagesize.Width;
                float height = pagesize.Height;
                // 创建一个文档变量
                Document document = new Document(pagesize, 50, 50, 50, 50);
                // 创建该文档
                PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(newFullName, FileMode.Create));
                // 打开文档
                document.Open();
                // 添加内容
                PdfContentByte cb = writer.DirectContent;
                int i = 0;
                int p = 0;
                while (i < n)
                {
                    document.NewPage();
                    p++;
                    i++;
                    PdfImportedPage page1 = writer.GetImportedPage(reader, i);
                    cb.AddTemplate(page1, 1f, 0, 0, 1f, 0, 0);
                }
                // 关闭文档
                document.Close();

                return true;
                //MessageBox.Show("ok.");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

 老规矩

有分的来这下:https://download.csdn.net/download/huamuxiansen/86513388

没分的来这下:

https://pan.baidu.com/s/1gtx6smulJCSUqIob-CBbMw?pwd=icn7 

提取码:icn7

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值