背景:之前接了一个小单子,需求就是将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图片相关推荐

  1. Python脚本工具,PyMuPDF批量提取PDF文件中的图片

    如何批量快速提取出PDF中的图片文件,你是否遇到这样的一个问题,尤其是PPT文件转换为PDF文件,需要快速提取其中的图片文件,如果你恰好会那么一点py,同时复制粘贴没问题的话,那么相信你也能够很轻松的 ...

  2. 如何将PDF转换成JPEG图片?

    ▌01 将PDF转换成JPEG 1.为什么转换? 有的时候需要将PDF文件转换成对应的JPEG文件嵌入在某些文档中,比如对应的PowerPoint,CSDN网页中.这方面的需求如同 使用 python ...

  3. PDF转换成JPG图片怎么转换?这两招轻松搞定

    PDF转换成JPG图片怎么转换?PDF文件是我们常用的一类文件,在现在的办公环境中,PDF真的用途很广,不仅是日常发送文件,还有学习工作中都会用到,不过有时候我们也需要将PDF文件转换成其他的格式,比 ...

  4. 提取PDF文件里面的图片

    现在很多资源都是PDF格式的,里面的很多图片也都很值得大家借鉴,但是截图出来的图片总是显得不清晰,我们可以考虑将PDF文件里面的图片文件提取出来,直接使用原图更方便.如果你需要提取PDF文件里面的图片 ...

  5. 小猪猪分享:如何将pdf转换成jpg图片

    网上有一些PDF文件是带有版权的,但一般我们要使用的恰恰就是这样的文件,尤其是作图的时候需要很多这样那样的素材,将PDF转换成jpg图片也就成了我们需要做的工作.但是要怎么转换呢? 将pdf转换成jp ...

  6. 3个方法提取PDF文件里的图片

    PDF文件可以保护文档内容不容易被更改,但也因为这样,有一些需求无法进行操作.比如PDF文件里的图片,不能通过另存为保存下来. 那如果想要提取PDF文件里的图片要如何操作呢?下面分享三个方法给大家. ...

  7. 怎么把pdf转换成jpg图片?pdf在线转图片的步骤

    相信大家都遇到.使用过pdf文件,这是一种非常常用的办公.学习文件格式,但有时候我们为了方便使用,就需要把pdf文件转换成图片来使用,那么应该怎么把pdf转换成jpg图片呢?今天来给大家分享一款pdf ...

  8. 三种方法,用Python轻松提取PDF中的全部图片

    作者 | 陈熹.刘早起 来源 | 早起Python 头图 | 下载于视觉中国 有时我们需要将一份或者多份PDF文件中的图片提取出来,如果采取在线的网站实现的话又担心图片泄漏,手动操作又觉得麻烦,其实用 ...

  9. 如何将PDF转换成JPG图片?这两种转换小技巧轻松拿捏

    怎么把PDF文件转换成JPG图片呢?大家在日常中传输文件时一般都会选用PDF文件格式,因为这种格式的文件可以让我们的文件内容不出现错乱.也有很多小伙伴习惯使用PDF文件来阅读浏览文件,但是每次打开文件 ...

最新文章

  1. 2022-2028年中国钽酸锂单晶行业市场调查分析及投资发展潜力报告
  2. 分析6千万条GitHub帖子,发现你的工作状态与表情符号强相关
  3. Python裁剪图片(Crop an Image)
  4. mysql主主复制、主从复制、半同步的实现
  5. Winform 打开下载的文件
  6. Qt工程pro文件配置详解
  7. 汇编原理实验 --电话簿的实现
  8. Silverlight简介
  9. [蓝桥杯2016初赛]冰雹数-模拟
  10. python抓取html中特定的数据库,Python抓取网页中内容,正则分析后存入mysql数据库...
  11. java 格式化字符串
  12. Android 隐藏ImageView
  13. lol更新显示正在连接服务器,正在连接服务器-lol一直显示“正在连接服务器”...
  14. 【WLM200Think无线鼠标拆解】鼠标中键有什么用?如何用鼠标中键提高效率? 鼠标中键不灵敏如何修理?
  15. html条件查询,高级查询条件设置- 通用查询-报表设计初级教程
  16. 情感分类与朴素贝叶斯
  17. 带参数传递的Verilog模块设计
  18. 神经网络——机器学习基础
  19. iphone5打开移动4G
  20. 浙江大学计算机考研学硕,真够“卷”的!浙江大学,计算机专业2021考研复试线399分?...

热门文章

  1. 【Intellij Idea】设置JDK
  2. Android的debug.keystore拒绝访问导致的生成异常及解决方案
  3. java中volatile的使用方式
  4. 基于交换芯片的五元组的PCL规则过滤功能
  5. You can't specify target table 'tablename' for update in FROM clause的解决方法
  6. RANSAC算法注记
  7. 牛顿法与拟牛顿法,SDM方法的一些注记
  8. 源码 移植_FreeModbus移植总结
  9. 第二十二篇 玩转数据结构——构建动态数组
  10. 克隆虚拟机启动网卡提示错误 Device eth0 does not seem to be present, delaying initialization...