final float maxDimension = 320;
PDFDoc pdfDoc = null;
PDFDraw pdfDraw = null;
try
{
//encoder parameters!
ObjSet objSet = new ObjSet();
Obj encoder_param = objSet.createDict();
encoder_param.putNumber("Quality", sQuality);
Log.d(getClass().getSimpleName(), "Preparing file " + pdfPath );
pdfDoc = new PDFDoc(pdfPath);
pdfDraw = new PDFDraw();
pdfDraw.setDrawAnnotations(false);
pdfDraw.setImageSmoothing(false);
pdfDraw.setCaching(false);
int pageCount = pdfDoc.getPageCount();
File thumbFile;
Page page = null;
for(int pageNr = 1 ; pageNr <= pageCount; pageNr++)
{
//create thumbnail path
thumbFile = new File(getThumbnailPath(pdfPathWithoutExt, pageNr));
Log.d("PdfPreparer", "Preparing page " + pageNr + " in file : "+ thumbFile.toString());
if (thumbFile.exists())
{
//the thumbnail already
continue;
}
long start = System.currentTimeMillis();
try
{
//get the page to render it to a bitmap
page = pdfDoc.getPage(pageNr);
float w = (float) page.getPageWidth();
float h = (float) page.getPageHeight();
if (w > h && w > 0)
{
h = h * ((float)maxDimension / w);
w = maxDimension;
}
else if (h > 0)
{
w = w * ((float)maxDimension / h);
h = maxDimension;
}
pdfDraw.setImageSize((int)w, (int)h);
pdfDraw.export(page, thumbFile.getPath(), "PNG8", encoder_param);
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
if (page != null) { page = null; }
}
Log.d("PDF", "Decoging page took: " + (System.currentTimeMillis() - start) + " milliseconds");
}
}
catch(Exception e)
{
Log.e("PdfPreparer",e.getMessage(), e);
}
finally
{
if (pdfDoc != null)
{
try{
pdfDoc.close();
}catch (PDFNetException e){
Log.e("PdfPreparer",e.getMessage(), e);
}
}
if (pdfDraw != null)
{
try{
pdfDraw.destroy();
}catch (PDFNetException e){
Log.e("PdfPreparer",e.getMessage(), e);
}
}
}