Frequently Asked Question
Send pdf page by e-mail
Last Updated 11 months ago
To send a PDF page via e-mail, you can render the page to a bitmap using the below code, save and send.
Document doc = new Document(); if( doc.Open(m_path, null) == 0 ) { int iw = thumb_width; int ih = thumb_height; Page page = doc.GetPage0(); Bitmap bmp = Bitmap.createBitmap( iw, ih, Bitmap.Config.ARGB_8888 ); bmp.eraseColor(0); float w = doc.GetPageWidth(0); float h = doc.GetPageHeight(0); float ratiox = iw/w; float ratioy = ih/h; if( ratiox > ratioy ) ratiox = ratioy; Matrix mat = new Matrix( ratiox, -ratiox, (iw - w * ratiox)/2, (ih + h * ratiox)/2 ); page.RenderToBmp(bmp, mat); mat.Destroy(); try { FileOutputStream fos = new FileOutputStream(pictureFile); //pictureFile the path of the bitmap to pass to send intent bmp.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.close(); } catch (Exception e) { e.getMessage(); } bmp.recycle(); page.Close(); doc.Close(); //send pictureFile by mail }
Or if you have a premium license, you can extract the PDF page(s) into a separate PDF, save and send.
Document document = new Document(); if(document.Open(path, password) == 0) { Document new_doc = new Document(); new_doc.Create( destFile ); //destFile the path of the destination file to pass to send intent new_doc.Open(destFile, null); new_doc.SetCache( file_cache ); Document.ImportContext ctx = new_doc.ImportStart(document); boolean result = false; for (int i = 0 ; i < mPages.length ; i++) //mPages array containing the page numbers to send result = new_doc.ImportPage(ctx, mPages[i].getPageNum() - 1, i); ctx.Destroy(); new_doc.Save(); new_doc.Close(); document.Close(); if(resul) //send destFile by mail }