-1

I am creating an application using PDFRenderer at API 5.0 I had to add pdfrenderer.jar externally also now it show's the following error - "The constructor PDFRenderer(ParcelFileDescriptor) is undefined" Can anyone help... This is new to me..

Diya
  • 107
  • 1
  • 11

3 Answers3

0

Use PDFRenderer(ParcelFileDescriptor input) where input is a seekable file descriptor.

Pdf Renderer basically takes a file descriptor as its parameter and you havent supplied any.

Refer the developer page https://developer.android.com/reference/android/graphics/pdf/PdfRenderer.html

archon92
  • 447
  • 3
  • 13
  • thanx...but I have referred to that first before making my file..Following is my code can u help?? – Diya Dec 04 '14 at 08:03
0
private void render() {
    try {
        Log.e("In render()","render");
        imageView = (ImageView) findViewById(R.id.imageView);
        int REQ_WIDTH = 1;
        int REQ_HEIGHT = 1;
        REQ_WIDTH = imageView.getWidth();
        REQ_HEIGHT = imageView.getHeight();
        Log.e("In render2()","render2");
        System.out.println("req_height"+REQ_HEIGHT+" "+"REQ_WIDTH"+REQ_WIDTH);

       Bitmap bitmap = Bitmap.createBitmap(REQ_WIDTH, REQ_HEIGHT, Bitmap.Config.ARGB_4444);


        File file = new File("/home/woigames/Desktop/PDF/DebitCards-tc.pdf");

        PDFRenderer renderer = new PDFRenderer(ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY));

        if(renderer != null)
        {
            Log.i("renderer not null","check");
        }
        else 
        {
            Log.i("renderer is null","check");
        }
        final int pageCount = renderer.getPageCount();

        if (currentPage < 0) {
            currentPage = 0;
        } else if (currentPage > renderer.getPageCount()) {
            currentPage = renderer.getPageCount() - 1;
        }

        Matrix m = imageView.getImageMatrix();
        Rect rect = new Rect(0, 0, REQ_WIDTH, REQ_HEIGHT);
        renderer.openPage(currentPage).render(bitmap, rect, m, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);

        imageView.setImageMatrix(m);
        imageView.setImageBitmap(bitmap);
        imageView.invalidate();
        renderer.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
Diya
  • 107
  • 1
  • 11
  • Error - The constructor PDFRenderer(ParcelFileDescriptor) is undefined.The method getPageCount() is undefined for the type PDFRenderer – Diya Dec 04 '14 at 08:05
  • Hey, i have changed my code and new msg at - CONSOLE "[2014-12-04 16:30:34 - Emulator] emulator-arm: .//tcg/optimize.c:158: tcg_opt_gen_mov: Assertion `temps[src].state != TCG_TEMP_CONST' failed. [2014-12-04 16:30:34 - Andro_pdf_two] emulator-5554 disconnected! Cancelling 'com.example.andro_pdf_two.MainActivity activity launch'! " – Diya Dec 04 '14 at 11:03
  • logcat msg - 12-05 00:12:56.980: E/AndroidRuntime(1094): java.lang.NoClassDefFoundError: android.graphics.pdf.PdfRenderer – Diya Dec 05 '14 at 05:18
  • Ur api level is lesser than what android expects – archon92 Dec 05 '14 at 05:28
  • the issue is, when running emulator with minsdk = 21 ERROR - "emulator-5554 disconnected! Cancelling 'com.example.andro_pdf_two.MainActivity activity launch'!" and when running the emulator at minsdk = 19 ERROR at logcat- "java.lang.NoClassDefFoundError: android.graphics.pdf.PdfRenderer " and "Call requires API level 21 (current min is 19): android.graphics.pdf.PdfRenderer#openPage" – Diya Dec 05 '14 at 05:32
  • I have already installed wat was required..in sdk manager but still its shows the same error..cant post snapshot of sdk manager..any other suggestions...? – Diya Dec 05 '14 at 06:25
0

Add api level 21 in you manifest and try .Lolipop pdf renderer requires a min sdk level of 21

<uses-sdk android:minSdkVersion="21" />
archon92
  • 447
  • 3
  • 13
  • Thanx, but still with minsdk = 21 ERROR msg- "emulator-5554 disconnected! Cancelling 'com.example.andro_pdf_two.MainActivity activity launch'...what can i do to fix it?? – Diya Dec 05 '14 at 05:39
  • Still the same error - " emulator-5554 disconnected! Cancelling 'com.example.andro_pdf_two.MainActivity activity launch'!" – Diya Dec 05 '14 at 06:51