[c#]删除PDF权限密码

发布于:2022-12-22 ⋅ 阅读:(458) ⋅ 点赞:(0)

 

软件介绍:

因为经常会有下载来的文件有各种编辑限制密码,就自己研究写了一个将已加密的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

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到