android - How to convert a pdf to an image? -


using pdfbox displays error:

import java.awt import javax` 

based on following code:

imagetype = bufferedimage.type_int_argb; //need specifies java.awt string[] formats = imageio.getreaderformatnames(); //need specifies javax 

finally found solution. can't use awt android, so, go pdf viewver lib on http://sourceforge.net/projects/andpdf/files/

find out apk , source pdf image.

here myclass convert pdf image:

package com.print;  import java.io.bytearrayoutputstream; import java.io.file; import java.io.fileoutputstream; import java.io.ioexception; import java.io.randomaccessfile; import java.nio.channels.filechannel;  import net.sf.andpdf.nio.bytebuffer; import net.sf.andpdf.refs.hardreference; import android.app.activity; import android.app.progressdialog; import android.content.context; import android.graphics.bitmap; import android.graphics.rectf; import android.os.bundle; import android.os.environment; import android.os.handler; import android.util.log; import android.widget.imageview; import android.widget.textview;  import com.sun.pdfview.pdffile; import com.sun.pdfview.pdfimage; import com.sun.pdfview.pdfpage; import com.sun.pdfview.pdfpaint; import com.sun.pdfview.decrypt.pdfauthenticationfailureexception; import com.sun.pdfview.font.pdffont;  public class transformer  extends activity{     /////////////////////////////////////////////     private static final int startpage = 1;     private static final float startzoom = 1.0f;      private static final string tag = "pdfviewer";     bitmap _bitmap=null;  //  private graphview mgraphview;     private string pdffilename;     private pdffile mpdffile;     private int mpage;     private float mzoom;     private file mtmpfile;      private pdfpage mpdfpage;       private thread backgroundthread;    private handler uihandler;      imageview myimg;     textview command;     context context;     progressdialog _p=null;      @override     protected void oncreate(bundle savedinstancestate) {         // todo auto-generated method stub         super.oncreate(savedinstancestate);         setcontentview(r.layout.trans);         context=transformer.this;           uihandler = new handler();         initcontrils();     }      private void initcontrils() {         // todo auto-generated method stub          boolean showimages = getintent().getbooleanextra(printdemo.extra_showimages, true);             pdfimage.sshowimages = showimages;             boolean antialias = getintent().getbooleanextra(printdemo.extra_antialias, true);             pdfpaint.s_doantialias = antialias;             boolean usefontsubstitution = getintent().getbooleanextra(printdemo.extra_usefontsubstitution, false);             pdffont.susefontsubstitution= usefontsubstitution;             boolean keepcaches = getintent().getbooleanextra(printdemo.extra_keepcaches, false);             hardreference.skeepcaches= keepcaches;              if (this.getintent() != null) {                 pdffilename = getintent().getstringextra(printdemo.extra_pdffilename);         }         mpage = startpage;         mzoom = startzoom;         myimg=(imageview)findviewbyid(r.id.imageview1);         command=(textview)findviewbyid(r.id.textview1);         _p=new progressdialog(context);         _p.setmessage("converting........");         _p.setcancelable(false);         _p.show();         setcontent();     }      private void setcontent() {         try {              parsepdf(pdffilename);             startrenderthread(mpage, mzoom);          }         catch (pdfauthenticationfailureexception e) {             log.e("amit...","error....");         }     }     private synchronized void startrenderthread(final int page, final float zoom) {           log.e("amit","renderrar");         if (backgroundthread != null)             return;         backgroundthread = new thread(new runnable() {             @override             public void run() {                 try {                     if (mpdffile != null) {                          showpage(page, zoom);                     }                 } catch (exception e) {                     log.e(tag, e.getmessage(), e);                 }                 backgroundthread = null;             }         });         updateimagestatus();         backgroundthread.start();      }      private void updateimagestatus() {         if (backgroundthread == null) {             updatetexts();             return;         }          uihandler.postdelayed(new runnable() {             @override public void run() {                 updateimagestatus();             }         }, 1000);     }   /*         private void setpagebitmap(bitmap bi) {             if (bi != null)                 _bitmap = bi;             else {                 _bitmap = bitmap.createbitmap(100, 100, config.rgb_565);                 canvas can = new canvas(_bitmap);                 can.drawcolor(color.red);                  paint paint = new paint();                 paint.setcolor(color.blue);                 can.drawcircle(50, 50, 50, paint);                  paint.setstrokewidth(0);                 paint.setcolor(color.black);                 can.drawtext("bitmap", 10, 50, paint);             }         }*/          protected void updatetexts() {             int maxcmds = pdfpage.getparsedcommands();             int curcmd = pdfpage.getlastrenderedcommand()+1;             if(maxcmds==curcmd){                      _p.dismiss();                     finish();                  log.e("amit","check update_finish()");             }else {                 setcontent();                 log.e("amit","check update_again");              }       }           private bitmap showpage(int page, float zoom) throws exception {             bitmap b=null;             try {                 log.e("amit","go page bitmap");                 mpdfpage = mpdffile.getpage(page, true);                 float wi = mpdfpage.getwidth();                 float hei = mpdfpage.getheight();                   rectf clip = null;                  bitmap bi = mpdfpage.getimage((int)(wi*zoom), (int)(hei*zoom), clip, true, true);                 b=bi;                  bytearrayoutputstream bytes = new bytearrayoutputstream();                 b.compress(bitmap.compressformat.jpeg, 90, bytes);                 file f = new file(environment.getexternalstoragedirectory()+ file.separator + "firstpdf.jpg");                 f.createnewfile();                 fileoutputstream fo = new fileoutputstream(f);                 fo.write(bytes.tobytearray());                 log.e("amit","go page bitmap______save");              } catch (throwable e) {                 log.e(tag, e.getmessage(), e);              }              return b;         }          private void parsepdf(string filename) throws pdfauthenticationfailureexception {              try {                 file f = new file(filename);                 long len = f.length();                 if (len == 0) {                     log.e("amit","no file found");                 }                 else {                     log.e("amit","file '" + filename + "' has " + len + " bytes");                     openfile(f);                 }             }             catch (pdfauthenticationfailureexception e) {                 throw e;              } catch (throwable e) {                 e.printstacktrace();              }           }           /**          * <p>open specific pdf file.  creates documentinfo file,          * , opens that.</p>          *          * <p><b>note:</b> mapping file locks file until pdffile          * closed.</p>          *          * @param file file open          * @throws ioexception          */         public void openfile(file file) throws ioexception {             // first open file random access             randomaccessfile raf = new randomaccessfile(file, "r");              // extract file channel             filechannel channel = raf.getchannel();              // memory-map byte-buffer             bytebuffer bb =                     bytebuffer.new(channel.map(filechannel.mapmode.read_only, 0, channel.size()));             // create pdffile data                  mpdffile = new pdffile(bb);              log.e("amit","pages-----"+mpdffile.getnumpages());         }    } 

Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -