Загрузка PDF-файлов в Bitmap - PullRequest
0 голосов
/ 11 июля 2020
ParcelFileDescriptor parcelFileDescriptor =
            getContentResolver().openFileDescriptor(uri, "r");

    assert parcelFileDescriptor != null;
    PdfRenderer renderer = new PdfRenderer(parcelFileDescriptor);

    int pageCount = renderer.getPageCount();
    Log.i("MYTAG", "Page Count :" + pageCount);

    for (int i = 0; i < pageCount; i++)
    {
        PdfRenderer.Page page = renderer.openPage(i);
        Log.d("CameraD", String.valueOf(renderer.shouldScaleForPrinting()));
        Bitmap imageI = Bitmap.createBitmap(page.getWidth(),page.getHeight(), Bitmap.Config.ARGB_8888);
        // say we render for showing on the screen
        page.render(imageI, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);

        File cameraPath = getExternalFilesDir(Environment.DIRECTORY_PICTURES+"/.original/");
        Log.d("CameraD", cameraPath.getAbsolutePath());
        String cameraImage = "Image";
        File imageFile = null;
        try {
            imageFile = File.createTempFile(cameraImage,".jpg",cameraPath);
            pathlist.add(imageFile.getName());
        } catch (IOException e)
        {
            e.printStackTrace();
        }
        OutputStream fOut = new FileOutputStream(imageFile);
        imageI.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
        startCropping(imageFile);
        fOut.flush();
        fOut.close();
        // close the page
        page.close();
    }
    renderer.close();
    parcelFileDescriptor.close();

Я хочу сохранить все страницы PDF в разных растровых изображениях. Я использую PDFRenderer для загрузки PDF в растровые изображения, но для некоторых сгенерированных растровых изображений PDF были черные неизвестные пятна. Как мы можем это решить?

...