借鉴EBookDroid源码,将一个pdf文件按页生成一系列的图片的实现方法
2013-06-18 14:37
961 查看
[java] view
plaincopy
package com.pdf.test;
import org.ebookdroid.core.BitmapRef;
import org.ebookdroid.core.CodecDocument;
import org.ebookdroid.core.CodecPage;
import org.ebookdroid.core.LogContext;
import org.ebookdroid.droids.mupdf.codec.PdfContext;
import android.graphics.RectF;
import java.util.concurrent.atomic.AtomicLong;
public class PDFPageBitmapFactory {
private static final AtomicLong SEQ = new AtomicLong();
private final LogContext LCTX = LogContext.ROOT.lctx(this.getClass().getSimpleName(), true).lctx("" + SEQ.getAndIncrement(), true);
private static PDFPageBitmapFactory INSTANCE = new PDFPageBitmapFactory();
private PdfContext context;
private CodecDocument document;
private CodecPage page;
private PDFPageBitmapFactory(){
}
public static PDFPageBitmapFactory getInstance(){
return INSTANCE;
}
public void makePdfPagePreview(final String filePath,
final String password){
new Thread(){
public void run(){
context = new PdfContext();
document = context.openDocument(filePath, password);
RectF pageSliceBounds = new RectF(0, 0, 1, 1);
int a = document.getPageCount();
String picName = "page_";
for (int i = 0; i < a; i++) {
page = document.getPage(i);
BitmapRef bitmapRef = page.renderBitmap(page.getWidth(), page.getHeight(),pageSliceBounds);
LCTX.i("make bitmap "+i);
FileUtils.saveBitmapToFile(bitmapRef.getBitmap(), "/sdcard/pic/"+picName+i);
LCTX.i("after save bitmap "+i);
}
}
}.start();
}
}
//注意要添加 libebookdroid.so文件
plaincopy
package com.pdf.test;
import org.ebookdroid.core.BitmapRef;
import org.ebookdroid.core.CodecDocument;
import org.ebookdroid.core.CodecPage;
import org.ebookdroid.core.LogContext;
import org.ebookdroid.droids.mupdf.codec.PdfContext;
import android.graphics.RectF;
import java.util.concurrent.atomic.AtomicLong;
public class PDFPageBitmapFactory {
private static final AtomicLong SEQ = new AtomicLong();
private final LogContext LCTX = LogContext.ROOT.lctx(this.getClass().getSimpleName(), true).lctx("" + SEQ.getAndIncrement(), true);
private static PDFPageBitmapFactory INSTANCE = new PDFPageBitmapFactory();
private PdfContext context;
private CodecDocument document;
private CodecPage page;
private PDFPageBitmapFactory(){
}
public static PDFPageBitmapFactory getInstance(){
return INSTANCE;
}
public void makePdfPagePreview(final String filePath,
final String password){
new Thread(){
public void run(){
context = new PdfContext();
document = context.openDocument(filePath, password);
RectF pageSliceBounds = new RectF(0, 0, 1, 1);
int a = document.getPageCount();
String picName = "page_";
for (int i = 0; i < a; i++) {
page = document.getPage(i);
BitmapRef bitmapRef = page.renderBitmap(page.getWidth(), page.getHeight(),pageSliceBounds);
LCTX.i("make bitmap "+i);
FileUtils.saveBitmapToFile(bitmapRef.getBitmap(), "/sdcard/pic/"+picName+i);
LCTX.i("after save bitmap "+i);
}
}
}.start();
}
}
//注意要添加 libebookdroid.so文件
相关文章推荐
- 借鉴EBookDroid源码,将一个pdf文件按页生成一系列的图片的实现方法
- Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
- PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】[原创]_php技巧_脚本之家
- windows下Python实现将pdf文件转化为png格式图片的方法
- 想要实现pdf文件5页数据,每页都有一个图片,怎么实现?
- NET二进制图片存储与读取的常见方法,iTextSharp添加图片生成PDF文件
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- PHP实现HTML生成PDF文件的方法
- Python+ImageMagick实现多图片合并为一个pdf文件
- Python实现合并同一个文件夹下所有PDF文件的方法示例
- php实现生成PDF文件的方法示例【基于FPDF类库】
- 多个图片文件夹生成一个大css文件的方法
- python实现对文件中图片生成带标签的txt文件方法
- PHP实现HTML生成PDF文件的方法
- 实现读取文件夹中文件,复制到另外一个文件夹,并且删除原来的文件包括(图片和PDF)
- 详解JAVA生成将图片存入数据库的sql语句实现方法
- java实现pdf文件截图的方法【附PDFRenderer.jar下载】
- java 生成pdf文件,添加图片
- PHP实现html生成pdf、html生成图片 利用wkhtmltox,wkhtmltopdf扩展
- java 使用itextpdf.jar和itext-asian.jar根据pdf模板填写数据后生成一个新的pdf文件