pdf 转图片,提取图片研究心得
1.pdf 中的数据是有多种编码的,详情请看:http://www.cnblogs.com/zendu/p/7644465.html
2.我的工作场景比较特殊,pdf中全部是图片,所以pdf转图片就有两种思路。
a.一种是把图片直接提取出来,怎么放进去的怎么提取出来。
这种速度最快,原因是用不到解码,直接数据的拷贝。但是也有他的问题,就是pdf中的编码格式较多,要针对不同的编码,提供不同的提取程序。
可以用到的库是pdfsharp ,itextsharp。个人感觉pdfsharp 没itextsharp稳定,但是速度快,但是已经是几十ms级的了,稳定性高的就首选了。
代码网上可以搜到,但是只能解析DCTDecode编码的图片,也就是jpg之类的图片。我能力有限,网上资料也不多,没深究。
b.一种是把图片转成位图,然后再转成你想要的格式
网上找到了mupdf开源库,有可能是c++写的缘故,这个类库的转换速度特别快。0.2秒左右一张,而且全编码支持(喜出望外)。C#版转图片的代码网上也搜的到。
所以最后的采用了a+b的方式,先提取,提取失败(比如png,tiff类型的图片)就采用mupdf,最后的效果还可以,平均解码速度0.07秒/页.
pdf 转图片,提取图片研究心得的更多相关文章
- python解析excel中图片+提取图片
解析表格是常用的技术.但是有些表各里面有图片怎么办?我想获得表格里面的图片,值得注意的是,图片没有位置信息,所以最好给图片进行编号,编号代表位置. 下面附上提取表格里面图片的代码.只要输出表格地址,和 ...
- Java 使用PDFBox提取PDF文件中的图片
今天做PDF文件解析,遇到一个需求:提取文件中的图片并保存.使用的是流行的apache开源jar包pdfbox, 但还是遇到坑了,比如pdfbox版本太高或太低都不能用!!这个包竟然没有很好地做好兼容 ...
- PDF 补丁丁 0.6.0.3326 版发布(修复提取图片的问题)
新的 PDF 补丁丁已经发布. 新版本更新了 PDF 渲染引擎. 另外修复了网友提出的提取图片功能中的两个问题.
- 个人永久性免费-Excel催化剂功能第88波-批量提取pdf文件信息(图片、表格、文本等)
日常办公场合中,除了常规的Excel.Word.PPT等文档外,还有一个不可忽略的文件格式是pdf格式,而对于想从pdf文件中获取信息时,常规方法将变得非常痛苦和麻烦.此篇给大家送一pdf文件提取信息 ...
- PDF提取图片(错误纠正)
有个任务需要抽取pdf中的图片,于是找了一个例子但是有错误,仅此记录下 错误1. AttributeError: 'Document' object has no attribute 'getObje ...
- PDF 补丁丁 0.6.0.3413 版发布(修复提取图片问题,增加自动检查软件更新功能)
新的测试版修复了提取图片旋转方向错误.遇到格式错误的图片后无法继续提取的问题. 另外增加了自动检查软件版本更新的功能(该功能不上传关于用户的任何个人信息,仅向本博客请求静态的版本信息文件,可在“帮助- ...
- PDF 补丁丁 0.6.0.3340 版发布(修复提取图片的问题)
新的版本修复了两个导致提取图片颜色异常的问题.
- C#实现 word、pdf、ppt 转为图片
office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...
- word、pdf、ppt 转为图片
office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...
随机推荐
- Windows Server 2008驱动安装全攻略
安装设备驱动程序原本是一件非常简单的事情,很多驱动程序在安装的时候我们只要不停单击“下一步”按钮,就能让驱动程序顺利地在对应计算机系统“落户”;不过,当身边的计算机系统升级为Windows Serve ...
- pyspider—爬取视频链接
#!/usr/bin/env python # -*- encoding: utf-8 -*- # Created on 2015-03-20 09:46:20 # Project: fly_spid ...
- Visual Studio 2010 C++ 属性设置基础
在 <Visual Studio 2010 C++ 工程文件解读>中提到了C++工程中可以进行用户自定义的属性设置,如何进行属性设置呢? 下面我们来了解一下 props 文件的基本规则: ...
- 关于javascript以及jquery如何打开文件
其实很简单, <input type="file" id="file" mce_style="display:none"> 这个 ...
- Java默认提供的线程池
Java的线程池都是通过ThreadPoolExecutor来构建. public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...
- SSH两种验证方式原理
本帖转自 http://www.cnblogs.com/hukey/p/6248468.html SSH验证方式有两种,分别为用户密码认证以及密钥认证. 1.用户密码认证方式 说明: (1) 当客户端 ...
- WebBrowser与console.log()
在WebBrowser中,页面上的console.log()会影响后续代码的执行. <script>console.log(1); alert("1"); //不执行 ...
- HTML符号大全
HTML特殊字符编码大全:往网页中输入特殊字符,需在html代码中加入以&开头的字母组合或以&#开头的数字.下面就是以字母或数字表示的特殊符号大全. ...
- org.springframework.stereotype.Service和com.alibaba.dubbo.config.annotation.Service两种service的区别
这两个Service,都可以在service类头上使用@Service的注解,于是我就写错了,查了半天才发现.他们的区别大概是这个样子的: org.springframework.stereotype ...
- XAMPP apache443端口被占用
点击netstat,可以看到443端口被vmvare占用,那只能改端口了, config,选择Apache(http-ssl.conf)文件,找到443端口,改成其他不被占用的端口,就可以了.