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