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文档的每一页转换成一张对应的图片,就像 ...
随机推荐
- java 二维码生成
直接上代码: 二维码生成核心类: package com.bbkj.wechat.tool; import java.awt.image.BufferedImage; import java.io.F ...
- Tornado异步(2)
Tornado异步 因为epoll主要是用来解决网络IO的并发问题,所以Tornado的异步编程也主要体现在网络IO的异步上,即异步Web请求. 1. tornado.httpclient.Async ...
- LeetCode——Coin Change
Question You are given coins of different denominations and a total amount of money amount. Write a ...
- LeetCode——Unique Binary Search Trees II
Question Given an integer n, generate all structurally unique BST's (binary search trees) that store ...
- BZOJ4787/UOJ290 【ZJOI2017】仙人掌
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- jQuery实际案例①——淘宝精品广告(鼠标触碰切换图片、自动轮播图片)
遇到的问题:自动轮播的实现,实质与轮播图一样儿一样儿的,不要被不同的外表所欺骗,具体的js代码如下:
- Python模块学习之解决selenium的“can't access dead object”错误
问题描述 在python执行过程中,提示selenium.common.exceptions.WebDriverException: Message: TypeError: can't access ...
- 如何高效的使用 Git
-- 代码昨天还是运行好好的今天就不行了. 代码被删了. 突然出现了一个奇怪的 bug,但是没人知道怎么回事. 如果你出现过上面的任何一种情况,那本篇文章就是为你准备的. 除了知道 git add, ...
- ctci4.1
; ) ; ) return false; else return true; }
- Linux网络编程--进程间通信(一)
进程间通信简介(摘自<Linux网络编程>p85) AT&T 在 UNIX System V 中引入了几种新的进程通讯方式,即消息队列( MessageQueues),信号量( s ...