易捷 > PDF教程 > PDF开发/编程技术 >

使用PDFlib PLOP解密PDF文档的代码和方法

分享到:
发布时间:2013-05-15 14:15   浏览次数:

利用PDFlib PLOP您可以在不安装任何其它软件的情况下,添加或移除PDF文档的密码。

下面的代码演示了如何利用PDFlib PLOP API去除PDF文档的密码保护。当然您需要提供原文档的密码才能进行这项操作。

#include <stdio.h>

#include "ploplib.h"

int main(void)
{
PLOP *plop;
/* 与输入文档相关的参数 */
const char *in_filename = "PLOP-datasheet-encrypted.pdf";
const char *in_password = "PLOP";
char optlist[1024];

/* 与输出文档相关的参数 */
const char *out_filename = "PLOP-datasheet-decrypted.pdf";
const char *out_master = "";
const char *out_user = "";
const char *permissions = "";

/* 创建一个新的PLOP对象 */
if ((plop = PLOP_new()) == (PLOP *) 0)
{
printf("Couldn't create PLOP object (out of memory)!\n");
return(2);
}

PLOP_TRY(plop) {
/* 打开带有密码保护的文档 */
sprintf(optlist, "password {%s} ", in_password);
if (PLOP_open_file(plop, in_filename, 0, optlist) == -1)
{
printf("Error: %s\n", PLOP_get_errmsg(plop));
PLOP_delete(plop);
return(2);
}

/* 创建输出文件*/
sprintf(optlist, "masterpassword {%s} userpassword {%s}
permissions {%s}",out_master, out_user, permissions);

if (PLOP_create_file(plop, out_filename, 0, optlist)== -1)
{
printf("Error: %s\n", PLOP_get_errmsg(plop));
PLOP_delete(plop);
return(2);
}

/* 关闭输入输出文件 */
PLOP_close(plop);
}

PLOP_CATCH(plop) {
printf("PLOP exception occurred in decrypt:\n");
printf("[%d] %s: %s\n", PLOP_get_errnum(plop),
PLOP_get_apiname(plop), PLOP_get_errmsg(plop));
PLOP_delete(plop);
return(2);
}

/* 删除PLOP对象*/
PLOP_delete(plop);

return(0);
}

相关文章推荐

易捷服务大全

在线PDF转换工具

Word

在线Word转PDF

http://wordtopdf.yjpdf.com
 
Excel

在线Excel转PDF

http://exceltopdf.yjpdf.com
 
PPT

在线PPT转PDF

http://ppttopdf.yjpdf.com

本类最新文章

本类本月热门

大家在关注…