android.graphics.pdf.PdfRenderer Java Examples
The following examples show how to use
android.graphics.pdf.PdfRenderer.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: BasePDFPagerAdapter.java From fangzhuishushenqi with Apache License 2.0 | 7 votes |
@Override @SuppressWarnings("NewApi") public Object instantiateItem(ViewGroup container, int position) { View v = inflater.inflate(R.layout.view_pdf_page, container, false); ImageView iv = (ImageView) v.findViewById(R.id.imageView); if (renderer == null || getCount() < position) { return v; } PdfRenderer.Page page = getPDFPage(renderer, position); Bitmap bitmap = bitmapContainer.get(position); page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); page.close(); iv.setImageBitmap(bitmap); container.addView(v, 0); return v; }
Example #2
Source File: PdfRendererBasicFragment.java From android-PdfRendererBasic with Apache License 2.0 | 6 votes |
/** * Shows the specified page of PDF to the screen. * * @param index The page index. */ private void showPage(int index) { if (mPdfRenderer.getPageCount() <= index) { return; } // Make sure to close the current page before opening another one. if (null != mCurrentPage) { mCurrentPage.close(); } // Use `openPage` to open a specific page in PDF. mCurrentPage = mPdfRenderer.openPage(index); // Important: the destination bitmap must be ARGB (not RGB). Bitmap bitmap = Bitmap.createBitmap(mCurrentPage.getWidth(), mCurrentPage.getHeight(), Bitmap.Config.ARGB_8888); // Here, we render the page onto the Bitmap. // To render a portion of the page, use the second and third parameter. Pass nulls to get // the default result. // Pass either RENDER_MODE_FOR_DISPLAY or RENDER_MODE_FOR_PRINT for the last parameter. mCurrentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); // We are ready to show the Bitmap to user. mImageView.setImageBitmap(bitmap); updateUi(); }
Example #3
Source File: PdfRendererBasicViewModel.java From graphics-samples with Apache License 2.0 | 6 votes |
@WorkerThread private void showPage(int index) { // Make sure to close the current page before opening another one. if (null != mCurrentPage) { mCurrentPage.close(); } // Use `openPage` to open a specific page in PDF. mCurrentPage = mPdfRenderer.openPage(index); // Important: the destination bitmap must be ARGB (not RGB). final Bitmap bitmap = Bitmap.createBitmap(mCurrentPage.getWidth(), mCurrentPage.getHeight(), Bitmap.Config.ARGB_8888); // Here, we render the page onto the Bitmap. // To render a portion of the page, use the second and third parameter. Pass nulls to get // the default result. // Pass either RENDER_MODE_FOR_DISPLAY or RENDER_MODE_FOR_PRINT for the last parameter. mCurrentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); mPageBitmap.postValue(bitmap); final int count = mPdfRenderer.getPageCount(); mPageInfo.postValue(new PageInfo(index, count)); mPreviousEnabled.postValue(index > 0); mNextEnabled.postValue(index + 1 < count); }
Example #4
Source File: PdfRendererBasicFragment.java From android-PdfRendererBasic with Apache License 2.0 | 6 votes |
/** * Sets up a {@link android.graphics.pdf.PdfRenderer} and related resources. */ private void openRenderer(Context context) throws IOException { // In this sample, we read a PDF from the assets directory. File file = new File(context.getCacheDir(), FILENAME); if (!file.exists()) { // Since PdfRenderer cannot handle the compressed asset file directly, we copy it into // the cache directory. InputStream asset = context.getAssets().open(FILENAME); FileOutputStream output = new FileOutputStream(file); final byte[] buffer = new byte[1024]; int size; while ((size = asset.read(buffer)) != -1) { output.write(buffer, 0, size); } asset.close(); output.close(); } mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); // This is the PdfRenderer we use to render the PDF. if (mFileDescriptor != null) { mPdfRenderer = new PdfRenderer(mFileDescriptor); } }
Example #5
Source File: FileBackend.java From Pix-Art-Messenger with GNU General Public License v3.0 | 6 votes |
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) private Bitmap getPDFPreview(final File file, int size) { try { final ParcelFileDescriptor mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); if (mFileDescriptor == null) { return null; } final PdfRenderer renderer = new PdfRenderer(mFileDescriptor); final PdfRenderer.Page page = renderer.openPage(0); final Dimensions dimensions = scalePdfDimensions(new Dimensions(page.getHeight(), page.getWidth())); final Bitmap bitmap = Bitmap.createBitmap(dimensions.width, dimensions.height, Bitmap.Config.ARGB_8888); bitmap.eraseColor(Color.WHITE); page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); drawOverlay(bitmap, R.drawable.show_pdf, 0.75f); page.close(); renderer.close(); return bitmap; } catch (Exception e) { e.printStackTrace(); final Bitmap placeholder = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); placeholder.eraseColor(Color.WHITE); drawOverlay(placeholder, R.drawable.show_pdf, 0.75f); return placeholder; } }
Example #6
Source File: BasePDFPagerAdapter.java From BookReader with Apache License 2.0 | 6 votes |
@Override @SuppressWarnings("NewApi") public Object instantiateItem(ViewGroup container, int position) { View v = inflater.inflate(R.layout.view_pdf_page, container, false); ImageView iv = (ImageView) v.findViewById(R.id.imageView); if (renderer == null || getCount() < position) { return v; } PdfRenderer.Page page = getPDFPage(renderer, position); Bitmap bitmap = bitmapContainer.get(position); page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); page.close(); iv.setImageBitmap(bitmap); container.addView(v, 0); return v; }
Example #7
Source File: BasePDFPagerAdapter.java From PdfViewPager with Apache License 2.0 | 6 votes |
@Override @SuppressWarnings("NewApi") public Object instantiateItem(ViewGroup container, int position) { View v = inflater.inflate(R.layout.view_pdf_page, container, false); ImageView iv = (ImageView) v.findViewById(R.id.imageView); if (renderer == null || getCount() < position) { return v; } PdfRenderer.Page page = getPDFPage(renderer, position); Bitmap bitmap = bitmapContainer.get(position); page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); page.close(); iv.setImageBitmap(bitmap); container.addView(v, 0); return v; }
Example #8
Source File: FileBackend.java From Conversations with GNU General Public License v3.0 | 5 votes |
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) private Bitmap renderPdfDocument(ParcelFileDescriptor fileDescriptor, int targetSize, boolean fit) throws IOException { final PdfRenderer pdfRenderer = new PdfRenderer(fileDescriptor); final PdfRenderer.Page page = pdfRenderer.openPage(0); final Dimensions dimensions = scalePdfDimensions(new Dimensions(page.getHeight(), page.getWidth()), targetSize, fit); final Bitmap rendered = Bitmap.createBitmap(dimensions.width, dimensions.height, Bitmap.Config.ARGB_8888); rendered.eraseColor(0xffffffff); page.render(rendered, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); page.close(); pdfRenderer.close(); fileDescriptor.close(); return rendered; }
Example #9
Source File: PDFUtil.java From PDFCreatorAndroid with MIT License | 5 votes |
/** * Convert PDF to bitmap, only works on devices above LOLLIPOP * * @param pdfFile pdf file * @return list of bitmap of every page * @throws Exception */ public static ArrayList<Bitmap> pdfToBitmap(File pdfFile) throws Exception, IllegalStateException { if (pdfFile == null || pdfFile.exists() == false) { throw new IllegalStateException(""); } ArrayList<Bitmap> bitmaps = new ArrayList<>(); try { PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(pdfFile, ParcelFileDescriptor.MODE_READ_ONLY)); Bitmap bitmap; final int pageCount = renderer.getPageCount(); for (int i = 0; i < pageCount; i++) { PdfRenderer.Page page = renderer.openPage(i); int width = page.getWidth(); int height = page.getHeight(); /* FOR HIGHER QUALITY IMAGES, USE: int width = context.getResources().getDisplayMetrics().densityDpi / 72 * page.getWidth(); int height = context.getResources().getDisplayMetrics().densityDpi / 72 * page.getHeight(); */ bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); bitmaps.add(bitmap); // close the page page.close(); } // close the renderer renderer.close(); } catch (Exception ex) { ex.printStackTrace(); } return bitmaps; }
Example #10
Source File: BasePDFPagerAdapter.java From BookReader with Apache License 2.0 | 5 votes |
@SuppressWarnings("NewApi") private PdfRendererParams extractPdfParamsFromFirstPage(PdfRenderer renderer, float renderQuality) { PdfRenderer.Page samplePage = getPDFPage(renderer, FIRST_PAGE); PdfRendererParams params = new PdfRendererParams(); params.setRenderQuality(renderQuality); params.setOffScreenSize(offScreenSize); params.setWidth((int) (samplePage.getWidth() * renderQuality)); params.setHeight((int) (samplePage.getHeight() * renderQuality)); samplePage.close(); return params; }
Example #11
Source File: BasePDFPagerAdapter.java From BookReader with Apache License 2.0 | 5 votes |
@SuppressWarnings("NewApi") protected void init() { try { renderer = new PdfRenderer(getSeekableFileDescriptor(pdfPath)); inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); PdfRendererParams params = extractPdfParamsFromFirstPage(renderer, renderQuality); bitmapContainer = new SimpleBitmapPool(params); } catch (IOException e) { e.printStackTrace(); } }
Example #12
Source File: PDFPagerAdapter.java From BookReader with Apache License 2.0 | 5 votes |
@Override @SuppressWarnings("NewApi") public Object instantiateItem(ViewGroup container, int position) { View v = inflater.inflate(R.layout.view_pdf_page, container, false); ImageView iv = (ImageView) v.findViewById(R.id.imageView); if (renderer == null || getCount() < position) { return v; } PdfRenderer.Page page = getPDFPage(renderer, position); Bitmap bitmap = bitmapContainer.get(position); page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); page.close(); PhotoViewAttacher attacher = new PhotoViewAttacher(iv); attacher.setScale(scale.getScale(), scale.getCenterX(), scale.getCenterY(), true); attacher.setOnMatrixChangeListener(this); attachers.put(position, new WeakReference<PhotoViewAttacher>(attacher)); iv.setImageBitmap(bitmap); attacher.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() { @Override public void onPhotoTap(View view, float x, float y) { if (pageClickListener != null) { pageClickListener.onPageTap(view, x, y); } } }); attacher.update(); container.addView(v, 0); return v; }
Example #13
Source File: BasePDFPagerAdapter.java From PdfViewPager with Apache License 2.0 | 5 votes |
@SuppressWarnings("NewApi") protected PdfRendererParams extractPdfParamsFromFirstPage(PdfRenderer renderer, float renderQuality) { PdfRenderer.Page samplePage = getPDFPage(renderer, FIRST_PAGE); PdfRendererParams params = new PdfRendererParams(); params.setRenderQuality(renderQuality); params.setOffScreenSize(offScreenSize); params.setWidth((int) (samplePage.getWidth() * renderQuality)); params.setHeight((int) (samplePage.getHeight() * renderQuality)); samplePage.close(); return params; }
Example #14
Source File: BasePDFPagerAdapter.java From PdfViewPager with Apache License 2.0 | 5 votes |
@SuppressWarnings("NewApi") protected void init() { try { renderer = new PdfRenderer(getSeekableFileDescriptor(pdfPath)); inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); PdfRendererParams params = extractPdfParamsFromFirstPage(renderer, renderQuality); bitmapContainer = new SimpleBitmapPool(params); } catch (IOException e) { errorHandler.onPdfError(e); } }
Example #15
Source File: BasePDFPagerAdapter.java From fangzhuishushenqi with Apache License 2.0 | 5 votes |
@SuppressWarnings("NewApi") private PdfRendererParams extractPdfParamsFromFirstPage(PdfRenderer renderer, float renderQuality) { PdfRenderer.Page samplePage = getPDFPage(renderer, FIRST_PAGE); PdfRendererParams params = new PdfRendererParams(); params.setRenderQuality(renderQuality); params.setOffScreenSize(offScreenSize); params.setWidth((int) (samplePage.getWidth() * renderQuality)); params.setHeight((int) (samplePage.getHeight() * renderQuality)); samplePage.close(); return params; }
Example #16
Source File: BasePDFPagerAdapter.java From fangzhuishushenqi with Apache License 2.0 | 5 votes |
@SuppressWarnings("NewApi") protected void init() { try { renderer = new PdfRenderer(getSeekableFileDescriptor(pdfPath)); inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); PdfRendererParams params = extractPdfParamsFromFirstPage(renderer, renderQuality); bitmapContainer = new SimpleBitmapPool(params); } catch (IOException e) { e.printStackTrace(); } }
Example #17
Source File: PDFPagerAdapter.java From fangzhuishushenqi with Apache License 2.0 | 5 votes |
@Override @SuppressWarnings("NewApi") public Object instantiateItem(ViewGroup container, int position) { View v = inflater.inflate(R.layout.view_pdf_page, container, false); ImageView iv = (ImageView) v.findViewById(R.id.imageView); if (renderer == null || getCount() < position) { return v; } PdfRenderer.Page page = getPDFPage(renderer, position); Bitmap bitmap = bitmapContainer.get(position); page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); page.close(); PhotoViewAttacher attacher = new PhotoViewAttacher(iv); attacher.setScale(scale.getScale(), scale.getCenterX(), scale.getCenterY(), true); attacher.setOnMatrixChangeListener(this); attachers.put(position, new WeakReference<PhotoViewAttacher>(attacher)); iv.setImageBitmap(bitmap); attacher.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() { @Override public void onPhotoTap(View view, float x, float y) { if (pageClickListener != null) { pageClickListener.onPageTap(view, x, y); } } }); attacher.update(); container.addView(v, 0); return v; }
Example #18
Source File: PdfRendererBasicViewModel.java From graphics-samples with Apache License 2.0 | 5 votes |
@WorkerThread private void openPdfRenderer() throws IOException { final File file = new File(getApplication().getCacheDir(), FILENAME); if (!file.exists()) { // Since PdfRenderer cannot handle the compressed asset file directly, we copy it into // the cache directory. final InputStream asset = getApplication().getAssets().open(FILENAME); final FileOutputStream output = new FileOutputStream(file); final byte[] buffer = new byte[1024]; int size; while ((size = asset.read(buffer)) != -1) { output.write(buffer, 0, size); } asset.close(); output.close(); } mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); if (mFileDescriptor != null) { mPdfRenderer = new PdfRenderer(mFileDescriptor); } }
Example #19
Source File: PDFUtil.java From PDFCreatorAndroid with MIT License | 5 votes |
/** * Get total number of pages * * @param pdfFile pdf file to get page count of * @return pdf page count * @throws IOException * @throws Exception */ private int getTotalPages(File pdfFile) throws IOException, Exception { ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(pdfFile, ParcelFileDescriptor.MODE_READ_ONLY); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { PdfRenderer pdfRenderer = new PdfRenderer(parcelFileDescriptor); return pdfRenderer.getPageCount(); } else { throw new Exception("PDF cannot be processed in this device"); } }
Example #20
Source File: BasePDFPagerAdapter.java From PdfViewPager with Apache License 2.0 | 4 votes |
@SuppressWarnings("NewApi") protected PdfRenderer.Page getPDFPage(PdfRenderer renderer, int position) { return renderer.openPage(position); }
Example #21
Source File: BasePDFPagerAdapter.java From fangzhuishushenqi with Apache License 2.0 | 4 votes |
@SuppressWarnings("NewApi") protected PdfRenderer.Page getPDFPage(PdfRenderer renderer, int position) { return renderer.openPage(position); }
Example #22
Source File: BasePDFPagerAdapter.java From BookReader with Apache License 2.0 | 4 votes |
@SuppressWarnings("NewApi") protected PdfRenderer.Page getPDFPage(PdfRenderer renderer, int position) { return renderer.openPage(position); }