Java源码示例:com.artifex.mupdf.fitz.Cookie

示例1
public synchronized void drawPage(Bitmap bm, int pageNum,
								  int pageW, int pageH,
								  int patchX, int patchY,
								  int patchW, int patchH,
								  Cookie cookie) {
	gotoPage(pageNum);

	if (displayList == null)
		displayList = page.toDisplayList(false);

	float zoom = resolution / 72;
	Matrix ctm = new Matrix(zoom, zoom);
	RectI bbox = new RectI(page.getBounds().transform(ctm));
	float xscale = (float)pageW / (float)(bbox.x1 - bbox.x0);
	float yscale = (float)pageH / (float)(bbox.y1 - bbox.y0);
	ctm.scale(xscale, yscale);

	AndroidDrawDevice dev = new AndroidDrawDevice(bm, patchX, patchY);
	displayList.run(dev, ctm, cookie);
	dev.destroy();
}
 
示例2
protected CancellableTaskDefinition<Void, Void> getDrawPageTask(final Bitmap bm, final int sizeX, final int sizeY,
																final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
	return new MuPDFCancellableTaskDefinition<Void, Void>() {
		@Override
		public Void doInBackground(Cookie cookie, Void ... params) {
			// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
			// is not incremented when drawing.
			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
				Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
				bm.eraseColor(0);
			mCore.drawPage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
			return null;
		}
	};

}
 
示例3
protected CancellableTaskDefinition<Void, Void> getDrawPageTask(final Bitmap bm, final int sizeX, final int sizeY,
                                                                final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
    return new MuPDFCancellableTaskDefinition<Void, Void>() {
        @Override
        public Void doInBackground(Cookie cookie, Void... params) {
            // Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
            // is not incremented when drawing.
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
                    Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
                bm.eraseColor(0);
            mCore.drawPage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
            return null;
        }
    };

}
 
示例4
public synchronized void drawPage(Bitmap bm, int pageNum, int pageW,
		int pageH, int patchX, int patchY, int patchW, int patchH, Cookie cookie) {
	gotoPage(pageNum);

	if (displayList == null)
		displayList = page.toDisplayList(false);

	float zoom = resolution / 72;
	Matrix ctm = new Matrix(zoom, zoom);
	RectI bbox = new RectI(page.getBounds().transform(ctm));
	float xscale = (float) pageW / (float) (bbox.x1 - bbox.x0);
	float yscale = (float) pageH / (float) (bbox.y1 - bbox.y0);
	ctm.scale(xscale, yscale);

	AndroidDrawDevice dev = new AndroidDrawDevice(bm, patchX, patchY);
	displayList.run(dev, ctm, cookie);
	dev.destroy();
}
 
示例5
protected CancellableTaskDefinition<Void, Void> getDrawPageTask(final Bitmap bm, final int sizeX, final int sizeY,
		final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
	return new MuPDFCancellableTaskDefinition<Void, Void>() {
		@Override
		public Void doInBackground(Cookie cookie, Void ... params) {
			// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
			// is not incremented when drawing.
			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
					Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
				bm.eraseColor(0);
			mCore.drawPage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
			return null;
		}
	};

}
 
示例6
protected CancellableTaskDefinition<Void, Void> getUpdatePageTask(final Bitmap bm, final int sizeX, final int sizeY,
		final int patchX, final int patchY, final int patchWidth, final int patchHeight)
{
	return new MuPDFCancellableTaskDefinition<Void, Void>() {
		@Override
		public Void doInBackground(Cookie cookie, Void ... params) {
			// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
			// is not incremented when drawing.
			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
					Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
				bm.eraseColor(0);
			mCore.updatePage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
			return null;
		}
	};
}
 
示例7
/**
 * 渲染页面,传入一个Bitmap对象.使用硬件加速,虽然速度影响不大.
 *
 * @param bm     需要渲染的位图,配置为ARGB8888
 * @param page   当前渲染页面页码
 * @param pageW  页面的宽,由缩放级别计算得到的最后宽,由于这个宽诸页面的裁剪大小,如果不正确,得到的Tile页面是不正确的
 * @param pageH  页面的宽,由缩放级别计算得到的最后宽,由于这个宽诸页面的裁剪大小,如果不正确,得到的Tile页面是不正确的
 * @param patchX 裁剪的页面的左顶点
 * @param patchY 裁剪的页面的上顶点
 * @param patchW 页面的宽,具体渲染的页面实际大小.显示出来的大小.
 * @param patchH 页面的高,具体渲染的页面实际大小.显示出来的大小.
 */
public synchronized void drawPage(Bitmap bm, int pageNum,
		int pageW, int pageH,
		int patchX, int patchY,
		int patchW, int patchH,
		Cookie cookie) {
	gotoPage(pageNum);

	if (displayList == null)
		displayList = page.toDisplayList(false);

	float zoom = resolution / 72;
	Matrix ctm = new Matrix(zoom);
	RectI bbox = new RectI(page.getBounds().transform(ctm));
	float xscale = (float)pageW / (float)(bbox.x1-bbox.x0);
	float yscale = (float)pageH / (float)(bbox.y1-bbox.y0);
	ctm.scale(xscale, yscale);

	AndroidDrawDevice dev = new AndroidDrawDevice(bm, patchX, patchY);
	displayList.run(dev, ctm, cookie);
	dev.destroy();
}
 
示例8
protected CancellableTaskDefinition<Void, Void> getDrawPageTask(final Bitmap bm, final int sizeX, final int sizeY,
		final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
	return new MuPDFCancellableTaskDefinition<Void, Void>() {
		@Override
		public Void doInBackground(Cookie cookie, Void ... params) {
			// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
			// is not incremented when drawing.
			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
					Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
				bm.eraseColor(0);
			mCore.drawPage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
			return null;
		}
	};

}
 
示例9
protected CancellableTaskDefinition<Void, Void> getUpdatePageTask(final Bitmap bm, final int sizeX, final int sizeY,
		final int patchX, final int patchY, final int patchWidth, final int patchHeight)
{
	return new MuPDFCancellableTaskDefinition<Void, Void>() {
		@Override
		public Void doInBackground(Cookie cookie, Void ... params) {
			// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
			// is not incremented when drawing.
			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
					Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
				bm.eraseColor(0);
			mCore.updatePage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
			return null;
		}
	};
}
 
示例10
public synchronized void updatePage(Bitmap bm, int pageNum,
									int pageW, int pageH,
									int patchX, int patchY,
									int patchW, int patchH,
									Cookie cookie) {
	drawPage(bm, pageNum, pageW, pageH, patchX, patchY, patchW, patchH, cookie);
}
 
示例11
protected CancellableTaskDefinition<Void, Void> getUpdatePageTask(final Bitmap bm, final int sizeX, final int sizeY,
																  final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
	return new MuPDFCancellableTaskDefinition<Void, Void>() {
		@Override
		public Void doInBackground(Cookie cookie, Void ... params) {
			// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
			// is not incremented when drawing.
			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
				Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
				bm.eraseColor(0);
			mCore.updatePage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
			return null;
		}
	};
}
 
示例12
public synchronized void drawPage(Bitmap bm, int pageNum,
                                  int pageW, int pageH,
                                  int patchX, int patchY,
                                  int patchW, int patchH,
                                  Cookie cookie) {
    // if bitmap is recycle,just return , because some async task will drawpage after bitmap
    if (bm != null && bm.isRecycled()) {
        return;
    }
    gotoPage(pageNum);

    if (displayList == null)
        displayList = page.toDisplayList(false);

    float zoom = resolution / 72;
    Matrix ctm = new Matrix(zoom, zoom);
    RectI bbox = new RectI(page.getBounds().transform(ctm));
    float xscale = (float) pageW / (float) (bbox.x1 - bbox.x0);
    float yscale = (float) pageH / (float) (bbox.y1 - bbox.y0);
    ctm.scale(xscale, yscale);
    if (bm != null && bm.isRecycled()) {
        return;
    }
    AndroidDrawDevice dev = new AndroidDrawDevice(bm, patchX, patchY);
    displayList.run(dev, ctm, cookie);
    dev.destroy();
}
 
示例13
public synchronized void updatePage(Bitmap bm, int pageNum,
                                    int pageW, int pageH,
                                    int patchX, int patchY,
                                    int patchW, int patchH,
                                    Cookie cookie) {
    drawPage(bm, pageNum, pageW, pageH, patchX, patchY, patchW, patchH, cookie);
}
 
示例14
protected CancellableTaskDefinition<Void, Void> getUpdatePageTask(final Bitmap bm, final int sizeX, final int sizeY,
                                                                  final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
    return new MuPDFCancellableTaskDefinition<Void, Void>() {
        @Override
        public Void doInBackground(Cookie cookie, Void... params) {
            // Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
            // is not incremented when drawing.
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
                    Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
                bm.eraseColor(0);
            mCore.updatePage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
            return null;
        }
    };
}
 
示例15
/**
 * 解码
 *
 * @param width           一个页面的宽
 * @param height          一个页面的高
 * @param pageSliceBounds 每个页面的边框
 * @param scale           缩放级别
 * @return 位图
 */
public Bitmap renderBitmap(int width, int height, RectF pageSliceBounds, float scale) {
    //Matrix matrix=new Matrix();
    //matrix.postScale(width/getWidth(), -height/getHeight());
    //matrix.postTranslate(0, height);
    //matrix.postTranslate(-pageSliceBounds.left*width, -pageSliceBounds.top*height);
    //matrix.postScale(1/pageSliceBounds.width(), 1/pageSliceBounds.height());

    int pageW;
    int pageH;
    int patchX;
    int patchY;
    pageW = (int) (getWidth() * scale);
    pageH = (int) (getHeight() * scale);

    patchX = (int) (pageSliceBounds.left * pageW);
    patchY = (int) (pageSliceBounds.top * pageH);
    //Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Bitmap bitmap = BitmapPool.getInstance().acquire(width, height);

    com.artifex.mupdf.fitz.Matrix ctm = new com.artifex.mupdf.fitz.Matrix(scale);
    AndroidDrawDevice dev = new AndroidDrawDevice(bitmap, patchX, patchY, 0, 0, width, height);
    page.run(dev, ctm, (Cookie) null);
    dev.close();
    dev.destroy();

    return bitmap;
}
 
示例16
public synchronized void updatePage(Bitmap bm, int pageNum,
		int pageW, int pageH,
		int patchX, int patchY,
		int patchW, int patchH,
		Cookie cookie) {
	drawPage(bm, pageNum, pageW, pageH, patchX, patchY, patchW, patchH, cookie);
}
 
示例17
@Override
protected Void doInBackground(RenderTaskParams... paramList)
{
	params = paramList[0];

	AndroidDrawDevice dev = new AndroidDrawDevice(params.bitmap, params.pageX0, params.pageY0, params.pageX1, params.pageY1, params.patchX0, params.patchY0, params.patchX1, params.patchY1);
	try
	{
		Cookie cookie = new Cookie();
		if (pageContents != null)
		{
			pageContents.run(dev, params.ctm, cookie);
		}
		if (annotContents != null && params.showAnnotations)
		{
			annotContents.run(dev, params.ctm, cookie);
		}
	}
	catch (Exception e)
	{
		Log.e("mupdf", e.getMessage());
	}
	finally
	{
		dev.destroy();
	}

	return null;
}
 
示例18
public MuPDFCancellableTaskDefinition() {
	this.cookie = new Cookie();
}
 
示例19
public MuPDFCancellableTaskDefinition() {
    this.cookie = new Cookie();
}
 
示例20
public synchronized void updatePage(Bitmap bm, int pageNum, int pageW,
		int pageH, int patchX, int patchY, int patchW, int patchH, Cookie cookie) {
	drawPage(bm, pageNum, pageW, pageH, patchX, patchY, patchW, patchH, cookie);
}
 
示例21
public MuPDFCancellableTaskDefinition() {
	this.cookie = new Cookie();
}
 
示例22
public MuPDFCancellableTaskDefinition()
{
	this.cookie = new Cookie();
}
 
示例23
public abstract Result doInBackground(Cookie cookie, Params ... params); 
示例24
public abstract Result doInBackground(Cookie cookie, Params... params); 
示例25
public abstract Result doInBackground(Cookie cookie, Params... params); 
示例26
public abstract Result doInBackground(Cookie cookie, Params ... params);