PdfDocument.java 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package org.vudroid.pdfdroid.codec;
  2. import com.poqop.document.codec.CodecDocument;
  3. import com.poqop.document.codec.CodecPage;
  4. public class PdfDocument implements CodecDocument
  5. {
  6. private long docHandle;
  7. private static final int FITZMEMORY = 512 * 1024;
  8. private PdfDocument(long docHandle)
  9. {
  10. this.docHandle = docHandle;
  11. }
  12. public CodecPage getPage(int pageNumber)
  13. {
  14. return PdfPage.createPage(docHandle, pageNumber + 1);
  15. }
  16. public int getPageCount()
  17. {
  18. return getPageCount(docHandle);
  19. }
  20. static PdfDocument openDocument(String fname, String pwd)
  21. {
  22. return new PdfDocument(open(FITZMEMORY, fname, pwd));
  23. }
  24. private static native long open(int fitzmemory, String fname, String pwd);
  25. private static native void free(long handle);
  26. private static native int getPageCount(long handle);
  27. @Override
  28. protected void finalize() throws Throwable
  29. {
  30. recycle();
  31. super.finalize();
  32. }
  33. public synchronized void recycle() {
  34. if (docHandle != 0) {
  35. free(docHandle);
  36. docHandle = 0;
  37. }
  38. }
  39. }