C++提取PDF页成BMP图片
背景:之前接了一个小单子,需求就是将PDF转成.tif图片,刚好闲着,就搜了许多资料,最后选择的是PDFium SDK。
1、首先是打开PDF文件,
//chPDF为文件路径
FPDF_DOCUMENT pdf_doc = FPDF_LoadDocument(chPDF, NULL);
if (pdf_doc == NULL)
{printf("open file failed.");return;
}
2、获取PDF文件页数
int pageCount = FPDF_GetPageCount(pdf_doc);
if (pageCount <= 0)
{FPDF_CloseDocument(pdf_doc);continue;
}
3、对每页的处理
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++)
{//根绝页面号加载页面FPDF_PAGE page = FPDF_LoadPage(pdf_doc, pageIndex);if (page == NULL){continue;}//获取页面默认大小double page_width = 0.0, page_height = 0.0;FPDF_GetPageSizeByIndex(pdf_doc, pageIndex, &page_width, &page_height);//以灰度的格式将页面渲染到FPDF_BITMAP ,这里的可以选择渲染的图片分辨率,我这里写成原来的两倍FPDF_BITMAP bitmap = FPDFBitmap_CreateEx(page_width*2, page_height*2 , FPDFBitmap_Gray, NULL, 0);//创建空位图FPDF_DWORD fill_color = 0xFFFFFFFF;//默认填充,可以不写FPDFBitmap_FillRect(bitmap, 0, 0, need_l, need_w, 255, 255, 255,0);//开始渲染,FPDF_RenderPageBitmap耗时跟分辨率有关FPDF_RenderPageBitmap(bitmap, page, 0, 0, need_l, need_w, 0, 0);//保存成BMP,SaveImage是我自己实现方法,其实就是在数据前面加上BMP图片格式的文件头SaveImage(文件名,图片数据,一行所占的像素值,图片高)SaveImage("123.bmp", (BYTE*)FPDFBitmap_GetBuffer(bitmap), FPDFBitmap_GetStride(bitmap), FPDFBitmap_GetHeight(bitmap));//关闭页面FPDF_ClosePage(page);
}
//关闭文件
FPDF_CloseDocument(pdf_doc);
至此就完成了将PDF的页面抽取封装成BMP图片,至于转为.TIF格式,我是在BMP的基础上使用另外的方法转的。
C++提取PDF页成BMP图片相关推荐
- Python脚本工具,PyMuPDF批量提取PDF文件中的图片
如何批量快速提取出PDF中的图片文件,你是否遇到这样的一个问题,尤其是PPT文件转换为PDF文件,需要快速提取其中的图片文件,如果你恰好会那么一点py,同时复制粘贴没问题的话,那么相信你也能够很轻松的 ...
- 如何将PDF转换成JPEG图片?
▌01 将PDF转换成JPEG 1.为什么转换? 有的时候需要将PDF文件转换成对应的JPEG文件嵌入在某些文档中,比如对应的PowerPoint,CSDN网页中.这方面的需求如同 使用 python ...
- PDF转换成JPG图片怎么转换?这两招轻松搞定
PDF转换成JPG图片怎么转换?PDF文件是我们常用的一类文件,在现在的办公环境中,PDF真的用途很广,不仅是日常发送文件,还有学习工作中都会用到,不过有时候我们也需要将PDF文件转换成其他的格式,比 ...
- 提取PDF文件里面的图片
现在很多资源都是PDF格式的,里面的很多图片也都很值得大家借鉴,但是截图出来的图片总是显得不清晰,我们可以考虑将PDF文件里面的图片文件提取出来,直接使用原图更方便.如果你需要提取PDF文件里面的图片 ...
- 小猪猪分享:如何将pdf转换成jpg图片
网上有一些PDF文件是带有版权的,但一般我们要使用的恰恰就是这样的文件,尤其是作图的时候需要很多这样那样的素材,将PDF转换成jpg图片也就成了我们需要做的工作.但是要怎么转换呢? 将pdf转换成jp ...
- 3个方法提取PDF文件里的图片
PDF文件可以保护文档内容不容易被更改,但也因为这样,有一些需求无法进行操作.比如PDF文件里的图片,不能通过另存为保存下来. 那如果想要提取PDF文件里的图片要如何操作呢?下面分享三个方法给大家. ...
- 怎么把pdf转换成jpg图片?pdf在线转图片的步骤
相信大家都遇到.使用过pdf文件,这是一种非常常用的办公.学习文件格式,但有时候我们为了方便使用,就需要把pdf文件转换成图片来使用,那么应该怎么把pdf转换成jpg图片呢?今天来给大家分享一款pdf ...
- 三种方法,用Python轻松提取PDF中的全部图片
作者 | 陈熹.刘早起 来源 | 早起Python 头图 | 下载于视觉中国 有时我们需要将一份或者多份PDF文件中的图片提取出来,如果采取在线的网站实现的话又担心图片泄漏,手动操作又觉得麻烦,其实用 ...
- 如何将PDF转换成JPG图片?这两种转换小技巧轻松拿捏
怎么把PDF文件转换成JPG图片呢?大家在日常中传输文件时一般都会选用PDF文件格式,因为这种格式的文件可以让我们的文件内容不出现错乱.也有很多小伙伴习惯使用PDF文件来阅读浏览文件,但是每次打开文件 ...
最新文章
- 2022-2028年中国钽酸锂单晶行业市场调查分析及投资发展潜力报告
- 分析6千万条GitHub帖子,发现你的工作状态与表情符号强相关
- Python裁剪图片(Crop an Image)
- mysql主主复制、主从复制、半同步的实现
- Winform 打开下载的文件
- Qt工程pro文件配置详解
- 汇编原理实验 --电话簿的实现
- Silverlight简介
- [蓝桥杯2016初赛]冰雹数-模拟
- python抓取html中特定的数据库,Python抓取网页中内容,正则分析后存入mysql数据库...
- java 格式化字符串
- Android 隐藏ImageView
- lol更新显示正在连接服务器,正在连接服务器-lol一直显示“正在连接服务器”...
- 【WLM200Think无线鼠标拆解】鼠标中键有什么用?如何用鼠标中键提高效率? 鼠标中键不灵敏如何修理?
- html条件查询,高级查询条件设置- 通用查询-报表设计初级教程
- 情感分类与朴素贝叶斯
- 带参数传递的Verilog模块设计
- 神经网络——机器学习基础
- iphone5打开移动4G
- 浙江大学计算机考研学硕,真够“卷”的!浙江大学,计算机专业2021考研复试线399分?...
热门文章
- 【Intellij Idea】设置JDK
- Android的debug.keystore拒绝访问导致的生成异常及解决方案
- java中volatile的使用方式
- 基于交换芯片的五元组的PCL规则过滤功能
- You can't specify target table 'tablename' for update in FROM clause的解决方法
- RANSAC算法注记
- 牛顿法与拟牛顿法,SDM方法的一些注记
- 源码 移植_FreeModbus移植总结
- 第二十二篇 玩转数据结构——构建动态数组
- 克隆虚拟机启动网卡提示错误 Device eth0 does not seem to be present, delaying initialization...