package org.vudroid.pdfdroid.codec; import com.poqop.document.codec.CodecDocument; import com.poqop.document.codec.CodecPage; public class PdfDocument implements CodecDocument { private long docHandle; private static final int FITZMEMORY = 512 * 1024; private PdfDocument(long docHandle) { this.docHandle = docHandle; } public CodecPage getPage(int pageNumber) { return PdfPage.createPage(docHandle, pageNumber + 1); } public int getPageCount() { return getPageCount(docHandle); } static PdfDocument openDocument(String fname, String pwd) { return new PdfDocument(open(FITZMEMORY, fname, pwd)); } private static native long open(int fitzmemory, String fname, String pwd); private static native void free(long handle); private static native int getPageCount(long handle); @Override protected void finalize() throws Throwable { recycle(); super.finalize(); } public synchronized void recycle() { if (docHandle != 0) { free(docHandle); docHandle = 0; } } }