App Inventor Extensions


Pdf Extension

See the App Inventor Extensions document about how to use an App Inventor Extension.

For questions about this extension or bug reports please start a new thread in the App Inventor Extensions forum. Thank you.

For feature requests please contact me by email. To be a sponsor of a new method already is possible starting from only 10 USD! With your contribution you will help the complete App Inventor community. Thank you.

Nov 14th, 2016: Initial Version 1

Nov 19th, 2016: Version 1a: bug fixes

Oct 25th, 2017: Version 1b-e: new properties render mode, quailty, rendered filename added

Description

Extension to open pdf files and render a specific page (without using an external app).

Required permissions: android.permission.READ_EXTERNAL_STORAGE, android.permission.WRITE_EXTERNAL_STORAGE
Minimum API level of this extension is 21 (Android 5)! Please adjust this in the manifest of your app!

Properties


Returns whether Warnings should be suppressed


Specifies whether Warnings should be suppressed


Returns the number of pages


Set the quality in dpi to render the pdf page. Default is 72 dpi.


Set render mode (DISPLAY or PRINT). Default is DISPLAY.


Set rendered filename. Default is file:///mnt/sdcard/Pictures/pdf/temp.png.
Note: If you use the default filename, then the file will be automatically deleted after closing the app.

Methods


Open a pdf file.
Prefix the pdfFilename with / (i.e. relative path) to open a pdf file from the SD card. For instance /myFile.pdf will open the file /mnt/sdcard/myFile.pdf. To open a pdf file from the assets packaged with an application (also works for the Companion) start the pdfFileName with // (two slashes). If a pdfFileName starts with file:/// you can specify a complete path to the pdf file.

Note 1: spaces in the pdf file name are not allowed!
Note 2: to open a pdf file from the assets is currently an experimental feature, see the Known Issues.


Render a specific page.

Events


Event indicating that pdf file was opened.
If the pdf file was opened successfully, the flag 'successful' is true and the pdfFileName is provided in the response. In case of an error, flag 'successful' is false and the error message is provided in the response.

Example Use

The example offers the possibility to pick a pdf file from the assets, renders a specific page and displays it in the webviewer to be able to zoom in/zoom out. In case you don't need zoom functionality, use an image component instead of the webviewer.

HTML/JavaScript

<!doctype html>
<head>
  <meta name="author" content="puravidaapps.com">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Page</title>
</head>

<body>
  <div id="myDiv">
    <p><img id = "myImage" src="" alt="" title=""></p>
  </div>
  <script>
    // get the iamge file name from the window.AppInventor object and display it
    var image = window.AppInventor.getWebViewString();
    document.getElementById("myImage").src = image;
  </script>
</body>
</html>

Test

Tested successfully on Nexus5 running Android 6.0.1 and Nexus 5X running Android 7.1.1.

Known Issues

It has been reported, that opening a pdf file from the assets on a Lollipop device (Android 5) results in a runtime error. Unfortunately I do not have an Android 5 device, so I'm unable to test on such device. In case you have an Android 5 device and you like to help me to fix this issue, then please contact me by email. Thank you.

As workaround just use the Copy block from the File extension to copy the file first to the sdcard and view it from there.

Do you need help with your App Inventor project?

I can help you: for one hour I charge 25 USD.
Please contact me at info [at] puravidaapps [dot] com for details!
For questions about App Inventor, please use the App Inventor forum. Thank you.

Questions and Answers

Q1: Does this extension work if I provide the full path of the location of the PFD file? For instance, this path: /storage/emulated/0/Download/filename.pdf? Why? Because I want to use your extension with the FileChooser Extension by ILoveThunkable. And the file chooser extension only provides the full path.
A: See the documentation: "If a pdfFileName starts with file:/// you can specify a complete path to the pdf file." Example: file:///storage/emulated/0/Download/filename.pdf, so just use the join block and join file:// together with the filename you receive from that extenion.

Test the functionality of the Pdf extension

The test app is available in Google Play for Beta testers. You can test the example following these steps

  1. Join the Taifun Test Google+ Group to be able to test the example app
  2. Then follow the opt-in URL to get access to the app and to be able to download it to your device. It might take a few hours for Google to enable you as beta tester!
  3. Start testing.

Note: Minimum API level of this extension is 21 (Android 5)!

Buy the Pdf extension for App Inventor


You can buy this extension (aix file).
With your payment you accept the terms and conditions below.

Payment options

1. Paypal

Please transfer 10 USD via Paypal
to Pura Vida Apps

2. Bitcoin

After having received your payment I will be happy to send the extension (aix file) to you.
Thank you! Taifun


Please check your spam folder in case you did not receive the extension!
I usually will send the extension not later than 24 hours after having received your payment.

 

Terms and Conditions

Back to top of page ...


Home | Snippets | Tutorials | Extensions | News | Forums | Links | Search | Contact