...
分享

做了一个PDF转图片的小工具,分享一下

现在大多数PDF转图片的工具都是收费的,

真是闹心,所以自己就做了一个。

用的是【优看】的DLL库 PDFtox.dll    

先放出可用版本,下载地址:

PDF转图片.zip

223.png


再说说 PDFtox.dll  

文档

YCanPDF PDFtoX 2.0 接口说明文档(请在http://www.ycanpdf.cn/ 下载本文档的最新版本以及示例代码
PDFtoX是YCanPDF工作室开发的把PDF转换成图片的标准动态链接库(DLL)。
有关该动态库的详细功能及接口说明如下:

一、 支持的开发环境

该DLL可在windows系列操作系统下运行,支持VC、VB、JAVA、DELPHI等大多
数主流开发语言,任何可以使用标准DLL的开发语言都可以使用。

二、支持的图像格式

支持BMP、JPG、TIF、PNG、GIF、PCX、TGA等常见图像格式,支持黑白(单色)、
灰度(256 gray)、彩色(24 位真彩)三种输出模式,并且可以指定生成的图像的
分辨率(dpi),最大可以超达到1000。

三、相关常量定义

3.1 图像格式定义
#define YCANPDF_IMAGE_BMP 1 
#define YCANPDF_IMAGE_JPG 2
#define YCANPDF_IMAGE_TIF 3
#define YCANPDF_IMAGE_PNG 4
#define YCANPDF_IMAGE_GIF 5
#define YCANPDF_IMAGE_PCX 6
#define YCANPDF_IMAGE_TGA 7
3.2 返回值定义
#define YCANPDF_ERR_SUCCESS 0 //成功 
#define YCANPDF_ERR_UNKNOW -1 //未知错误
#define YCANPDF_ERR_ENCRYPTED -2 //文件加密
#define YCANPDF_ERR_NOCOPY -3 //没有复制权限
3.3 PDF 信息类型
#define YCANPDF_INFO_AUTHOR 1 //作者 
#define YCANPDF_INFO_TITLE 2 //标题
#define YCANPDF_INFO_KEY 3 //关键字
#define YCANPDF_INFO_SUBJECT 4 //主题
#define YCANPDF_INFO_CREATOR 5 //创建者

四、接口说明

4.1 int _stdcall OpenPDF(char *szPDFFileName, char *szPWD);
功能 
    打开一个PDF文件。
参数
    char *szPDFFileNamePDF的文件名。
    char *szPWD PDF的密码。
返回值
    返回一个PDF文件句柄,小于等于0表示失败(3.2定义)。

4.2 int _stdcall ClosePDF(int hPDF);
功能
    关闭一个PDF 文件。
参数
    int hPDF:OpenPDF方法返回的PDF的文件句柄。
返回值
    3.2定义的返回值之一。

4.3 
int _stdcall ExportIMG(int hPDF,
char *szDir,char *szPrefix,
int nFormat,
int dpiX,int dpiY,
int nFrom,int nTo,
CB_PROGRESS ProgressFun);
功能
    把PDF文件转成图片文件。
参数
    int hPDF:OpenPDF方法返回的PDF的文件句柄。
    char *szDir, char *szPrefix:保存图片的目录以及文件名前缀。命名格式为:szDir+4位数字编码+szPrefix+文件扩展名。
    例如:szDir为”C:\myTest”,szPreFix为”abc”,则最后生成的图片文件为C:\myTest\abc0001.jpg,c:\myTest\abc0002.jpg,….
    int nFormat:为图像格式定义的值之一。如果不在这个范围,则自动调整为JPG格式。
    int dpiX,int dpiY:生成图像的X,Y分辨率。可根据自己的需要调整这个值,值越大,图像分辨率就越高,图像文件也就越大。
    int nFrom,int nTo:要转换的页面范围。获取总页面数可以使用GetPageNum方法(参4.6)。
    CB_PROGRESS ProgressFun:转换过程的回调函数,用户可以通过这个函数掌握和控制转换过程,关于这个函数的详细说明请参考4.11
返回值
    3.2 定义的返回值之一,0 表示成功,其他值表示失败(在3.2 定义)。

4.4 
int _stdcall ExportTIF(int hPDF,
char *szDir,char *szPrefix,
int dpiX,int dpiY,
int nFrom,int nTo,
CB_PROGRESS ProgressFun,
int enc,
int bMutiTIF);

功能

    把PDF文件转成TIF图片文件。
参数
    int hPDF:OpenPDF方法返回的PDF的文件句柄。
    char *szDir, char *szPrefix:保存图片的目录以及文件名前缀。命名格式为:szDir+4位数字编码+szPrefix+文件扩展名。
    例如:szDir为”C:\myTest”,szPreFix为”abc”,则最后生成的图片文件为C:\myTest\abc0001.jpg,c:\myTest\abc0002.jpg,….
    int dpiX,int dpiY:生成图像的X,Y分辨率。可根据自己的需要调整这个值,值越大,
    图像分辨率就越高,图像文件也就越大。
    int nFrom,int nTo:要转换的页面范围。获取总页面数可以使用GetPageNum方法(参4.6)。
    CB_PROGRESS ProgressFun:转换过程的回调函数,用户可以通过这个函数掌握和控制转换过程,关于这个函数的详细说明请参考4.11
    int enc:压缩方式。
        enc=0(JPEG压缩)
        enc=1(无压缩)
        enc=2(Huffman RLE压缩)
        enc=3(Group 3 Fax Encoding压缩)
        enc=4(Group 4 Fax Encoding压缩)
        enc=5(LZW压缩)
    int bMutiTIF: 多页图片。
返回值
    3.2 定义的返回值之一,0 表示成功,其他值表示失败(在3.2 定义)。

4.5
int _stdcall ExportJPG(int hPDF,
char *szDir,char *szPrefix,
int dpiX,int dpiY,
int nFrom,int nTo,
CB_PROGRESS ProgressFun,
int nJPEGLevel,
int bGray);
功能
    把PDF文件转成图片文件。
参数
    int hPDF:OpenPDF方法返回的PDF的文件句柄。
    char *szDir, char *szPrefix:保存图片的目录以及文件名前缀。命名格式为:szDir+4位数字编码+szPrefix+文件扩展名。
    例如:szDir为”C:\myTest”,szPreFix为”abc”,则最后生成的
    图片文件为C:\myTest\abc0001.jpg,c:\myTest\abc0002.jpg,….
    int nFormat:为图像格式定义的值之一。如果不在这个范围,则自动调整为JPG格式。
    int dpiX,int dpiY:生成图像的X,Y分辨率。可根据自己的需要调整这个值,值越大,图像分辨率就越高,图像文件也就越大。
    int nFrom,int nTo:要转换的页面范围。获取总页面数可以使用GetPageNum方法(后面有说明)。
    CB_PROGRESS ProgressFun:转换过程的回调函数,用户可以通过这个函数掌握和控制转换过程,关于这个函数的详细说明请参考4.11
    int nJPEGLevel:JPEG图片品质。(0<nJPEGLevel<=100
    int bGray:是否灰度图。(bGray=0,真彩色;bGray=1,灰度图;
返回值
    3.2 定义的返回值之一,0 表示成功,其他值表示失败(在3.2 定义)。

4.6 int _stdcall GetPageNum(int hPDF);
功能
    获取PDF文件的总页数。
参数 
    int hPDF:OpenPDF方法返回的PDF的文件句柄。
返回值
    总页面数。小于等于0表示失败。

4.7 int _stdcall GetPageWidth(int hPDF, int nPage);
功能
    获取指定页面的宽。
参数
    int hPDF:OpenPDF方法返回的PDF 的文件句柄。
    int nPage:要获取页码(同一个PDF中每页的宽和高可能不一样)
返回值
    页面的宽,0为不合法。

4.8 int _stdcall GetPageHeight(int hPDF, int nPage);
功能
    获取指定页面的高。
参数
    int hPDF:OpenPDF方法返回的PDF 的文件句柄。
    int nPage:要获取的页码(同一个PDF中每页的宽和高可能不一样)
返回值
    页面的高,0为不合法。

4.9 char * _stdcall GetInfo(int hPDF,int InfoType);
功能
    获取PDF文件信息。
参数
    int hPDF:OpenPDF方法返回的PDF的文件句柄。
    int InfoType:要获取的信息类别(3.3中定义)
返回值
    信息内容。
    注意:这个返回的内容必须要调用FreeMem方法释放,否则会发生内存泄漏。

4.10 void _stdcall FreeMem(char *pBuff);
功能
    释放GetInfo返回的内存。
参数
    char *pBuff: GetInfo方法返回的内存指针。

4.11 int CB_PROGRESS(int nMin,int nMax,int nCur)
功能
    回调函数。
参数
    int nMin,int nMax,int nCur:分别返回转换的起始页、终止页、当前页。这个函数在每一页转换之前调用,用户可以在这里加入处理界面刷新、掌控进度等的代码,函数返回0则马上停止转换。



冰点文库下载软件,百度文库下载软件 js table表格导出到excel 导出一个工作簿多个sheet
biu biu biu
雨霖铃·寒蝉凄切 win10 route add 添加静态路由,双网卡一个内网一个外网路由配置,双网关路由配置 PHP读取远程URL出现 file_get_contents(): SSL operation failed with code 1. OpenSSL vue 脚手架 sass安装 安装淘宝镜像源 cnpm 教程