GithubHelp home page GithubHelp logo

googlearchive / android-pdfrendererbasic Goto Github PK

View Code? Open in Web Editor NEW
519.0 49.0 157.0 805 KB

Migrated:

Home Page: https://github.com/android/graphics

License: Apache License 2.0

Java 51.43% Kotlin 48.57%

android-pdfrendererbasic's Introduction

Android PdfRendererBasic Sample

This repo has been migrated to github.com/android/graphics. Please check that repo for future updates. Thank you!

android-pdfrendererbasic's People

Contributors

codingjeremy avatar google-automerger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-pdfrendererbasic's Issues

black border around content

Hello,
I'm trying to use PDFRenderer to convert a PDF file generated by the Android' PrintManager
Below is this generated pdf file which seems perfectly correct.
TestPrint.pdf
And here is the code I use to convert this file in a bitmap.

    mCurrentPage = mPdfRenderer.openPage(index);

    int width = (int)(203.0 / 72.0 * mCurrentPage.getWidth() + 0.5);
    int height = (int)(203.0 / 72.0 * mCurrentPage.getHeight() + 0.5);

    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

    mCurrentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_PRINT);

And below is the generated Bitmap. could you please tell me where does this 80 pixels wide black border comes from?
screenshot_19700129-125550

Cannot open PDF file after open wrong file

I have a file: pdf.txt. I rename it to: pdf.pdf
Below is my steps:

  1. Open app. Open file "sample.pdf". -> OK
  2. Open file "pdf.pdf" -> show Toast: "Error! file not in PDF format or corrupted"
  3. Open file "sample.pdf" again. -> show Toast: "Error! file not in PDF format or corrupted"
    Now I cannot open PDF file.
    If I kill app, and open app again. File "sample.pdf" show ok. And if I open wrong file. I cannot open any files more.
    How can I resolve this issue? Thank you

App is crashing in Samsung J5 Api 23.

08-02 10:39:22.468 6573-6573/com.example.android.pdfrendererbasic E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.pdfrendererbasic, PID: 6573
java.lang.IllegalStateException: Already closed
at android.graphics.pdf.PdfRenderer$Page.throwIfClosed(PdfRenderer.java:419)
at android.graphics.pdf.PdfRenderer$Page.close(PdfRenderer.java:394)
at com.example.android.pdfrendererbasic.PdfRendererBasicFragment.showPage(PdfRendererBasicFragment.java:197)
at com.example.android.pdfrendererbasic.PdfRendererBasicFragment.onStart(PdfRendererBasicFragment.java:122)
at android.support.v4.app.Fragment.performStart(Fragment.java:2287)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1458)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1750)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1819)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3227)
at android.support.v4.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:3186)
at android.support.v4.app.FragmentController.dispatchStart(FragmentController.java:203)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:582)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1266)
at android.app.Activity.performStart(Activity.java:6943)
at android.app.Activity.performRestart(Activity.java:7002)
at android.app.ActivityThread.handleSleeping(ActivityThread.java:4942)
at android.app.ActivityThread.access$3600(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2058)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
08-02 10:44:22.738 6573-6573/com.example.android.pdfrendererbasic I/Process: Sending signal. PID: 6573 SIG: 9

How to open pdf file from the sd Instance of Assets folder.

I have file path some like this (File pdfFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Bosch/" + "/All_files/"+"Week"+position+".pptx");// Instance of get file from assets folder i am fetching file from sd card.how to achieve this..please help me sir.

App crashes when minimize the App and Open App again

Hi, App goes to crash when I minimize App and then open
The app from minimized state.

Android Version : 7.0
Android Device : MOTO C Plus

FATAL EXCEPTION: main Process: com.example.android.pdfrendererbasic, PID: 32027 java.lang.RuntimeException: Unable to resume activity {com.example.android.pdfrendererbasic/com.example.android.pdfrendererbasic.MainActivity}: java.lang.IllegalStateException: Already closed at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3506) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3546) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1577) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:203) at android.app.ActivityThread.main(ActivityThread.java:6251) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1075) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) Caused by: java.lang.IllegalStateException: Already closed at android.graphics.pdf.PdfRenderer$Page.throwIfClosed(PdfRenderer.java:423) at android.graphics.pdf.PdfRenderer$Page.close(PdfRenderer.java:398) at com.example.android.pdfrendererbasic.PdfRendererBasicFragment.showPage(PdfRendererBasicFragment.java:197) at com.example.android.pdfrendererbasic.PdfRendererBasicFragment.onStart(PdfRendererBasicFragment.java:122) at android.support.v4.app.Fragment.performStart(Fragment.java:2380) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1458) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809) at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3217) at android.support.v4.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:3176) at android.support.v4.app.FragmentController.dispatchStart(FragmentController.java:203) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570) at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248) at android.app.Activity.performStart(Activity.java:6683) at android.app.Activity.performRestart(Activity.java:6757) at android.app.Activity.performResume(Activity.java:6762) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3477) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3546) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1577) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:203) at android.app.ActivityThread.main(ActivityThread.java:6251) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1075) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

java.io.IOException: cannot create document. Error: 3

When I download the sample and try to run it this is the error I get :

ClassLoader referenced unknown path: /data/app/com.example.android.pdfrendererbasic-1/lib/arm
java.io.IOException: cannot create document. Error: 3

    mPdfRenderer = new PdfRenderer(mFileDescriptor);

mPdfRenderer is always null

handle embed link in pdf page

can PdfRenderer handle the embed links in pdf pages(or simply provide the position and url of the link in pdf pages)?

[ZIP3] No create document. Error:

Hi~
I'm making test app using your code but following system err was happened.
(sample.pdf was added to assets folder)
Please help me~

[Logcat]
09-03 17:43:03.538 D 13260 13260 ZIP3 : {ParcelFileDescriptor: FileDescriptor[35]}
09-03 17:43:03.548 W 13260 13260 System.err: java.io.IOException: not create document. Error:
09-03 17:43:03.548 W 13260 13260 System.err: at android.graphics.pdf.PdfRenderer.nativeCreate(Native Method)
09-03 17:43:03.548 W 13260 13260 System.err: at android.graphics.pdf.PdfRenderer.(PdfRenderer.java:153)
09-03 17:43:03.548 W 13260 13260 System.err: at com.example.zip3testapp.MainActivity.openRenderer(MainActivity.java:178)
09-03 17:43:03.548 W 13260 13260 System.err: at com.example.zip3testapp.MainActivity.onResume(MainActivity.java:267)

[Source]
mFileDescriptor = assetManager.openFd("sample.pdf").getParcelFileDescriptor();
Log.d("ZIP3", mFileDescriptor.toString());
PdfRenderer mPdfRenderer = new PdfRenderer(mFileDescriptor);

P.S.

  1. I tested this with GS6(platform ver.5.1.1).
  2. I moved file to sdcard and checked this again but there's a same error.

Not create document . Error

Hello,

The sample is working as expected but when i add a permission on the manifest file like INTERNET permission The pdf can't be open with a stack of error :

java.lang.RuntimeException: Unable to start activity ComponentInfo{exemple.com.android.appliSample/exemple.com.android.appliSample.activity.PdfReaderActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.pdf.PdfRenderer.getPageCount()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2411)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2474)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1360)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:5698)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.pdf.PdfRenderer.getPageCount()' on a null object reference
at exemple.com.android.appliSample.fragment.PdfRendererBasicFragment.showPage(PdfRendererBasicFragment.java:177)
at exemple.com.android.appliSample.fragment.PdfRendererBasicFragment.onViewCreated(PdfRendererBasicFragment.java:109)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:926)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1116)
at android.app.BackStackRecord.run(BackStackRecord.java:836)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1581)
at android.app.Activity.performStart(Activity.java:5974)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2375)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2474)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1360)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:158)
            at android.app.ActivityThread.main(ActivityThread.java:5698)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)

What i need to add ?

Some Fatal Error

On simulator or samsung galaxy s6 , and xiaomi 4, I can run the code below, but xiaomi3, meizu cann't . It will occur "Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 985", I try many times but it failed. can anyone help me?

class MThread extends Thread {
   private int position;
   private Bitmap bitmap;
   private ImageView imageView;

    public MThread(ImageView imageView, int position, Bitmap bitmap) {
        this.imageView = imageView;
        this.position = position;
        this.bitmap = bitmap;
    }

    @Override
    public void run() {
        if (bitmap != null) {//不判断出NullPointer
            bitmap.eraseColor(Color.WHITE); //变成纯白色
        } else {
            bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        }
        PdfRenderer.Page page = pdfRenderer.openPage(position);
        page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
        page.close();

        Tasks.handler().post(new Runnable() {
            @Override
            public void run() {
                setBitmap(imageView, position, bitmap);
            }
        });
    }
}

Crash with big pdf file

Hello
When i use this code with pdf file has less than 10 pages it works correctly, but when i want to show an pdf file with more than 10 pages my app will crash with this errors
capture

I can't find it out , Please help me.
Thank you.

Upstream issue with PdfRenderer

"This is an odd one; it's probably a variation on Issue #82838, in which when attempting to use PdfRenderer to display Assets, the wrong Asset is used.

What seems to be the problem is that behavior of PdfRenderer to display Assets depends upon the order of entries within the .apk. If the META-INF entries are first in the .apk, then PdfRenderer won't display PDF assets at all."

https://code.google.com/p/android/issues/detail?id=82841

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.