Some test text!

Search
Hamburger Icon

Android / Guides / 2. View a document

How to view document in Android with DocumentActivity

This section will show you how to open a document in a DocumentActivity. This is an AppCompatActivity which contains a PdfViewCtrlTabHostFragment2 and packages all the standard features used during document viewing. You can learn more about our document viewer here .

  1. The AndroidManifest.xml file needs to be updated to request permissions to allow DocumentActivity to function properly. You also need to add some attributes to the <application> tag as well as a new <activity> tag to define the DocumentActivity.

    <?xml version="1.0" encoding="utf-8"?>
    <!-- Include existing attributes in manifest -->
    <manifest>
        <!-- Required permissions are added here -->
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
    
        <!-- Add multidex support and enable largeHeap. 
             Also enable usesCleartextTraffic in application attributes if you are  
             working with HTTP files. If you are only working with HTTPS files, this is not required. -->
        <!-- Include existing attributes in application -->
        <application 
            android:name="androidx.multidex.MultiDexApplication"
            android:largeHeap="true"
            android:usesCleartextTraffic="true">
    
            <!-- Add license key in meta-data tag here. This should be inside the application tag. -->
            <!-- This is from the Integration stage-->
            <meta-data
                android:name="pdftron_license_key"
                android:value="${pdftronLicenseKey}"  />
    
            <!-- Document viewer activity declaration-->
            <activity 
                android:name="com.pdftron.pdf.controls.DocumentActivity"
                android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
                android:windowSoftInputMode="adjustPan"
                android:theme="@style/PDFTronAppTheme"/>
        </application>
    </manifest>
    Storage Permission
    Please follow the latest Android best practices and guidelines outlined here

    A more detailed description of permission requirements can be found here .

    If your app is targeting Android SDK version 28 or higher, you will need to add the android:usesCleartextTraffic="true" attribute in your application tag to open HTTP files in the viewer. If you are only working with HTTPS files, this is not required.
  2. Import the following in your MainActivity.java file.

    import android.net.Uri;
    import java.io.File;
    import com.pdftron.pdf.config.ViewerConfig;
    import com.pdftron.pdf.controls.DocumentActivity;
  3. Inside the onCreate method for your MainActivity class, add the following lines to open a demo pdf from URL.

    ViewerConfig config = new ViewerConfig.Builder().openUrlCachePath(this.getCacheDir().getAbsolutePath()).build();
    final Uri fileLink = Uri.parse("https://pdftron.s3.amazonaws.com/downloads/pl/PDFTRON_mobile_about.pdf");
    DocumentActivity.openDocument(this, fileLink, config);

    You can open documents using DocumentActivity in many ways. Find out more here.

DocumentActivity has limited runtime customizability.

If you require more customizability options, please use PdfViewCtrlTabHostFragment2 since it gives you full control over UI and behavior customization. You can find out more about the different components here .

Your app should look something like this:

You can explore the features of the viewer and also many customization options .

More loading options

DocumentActivity can open documents from various resources including internal storage, URIs, web servers and the application's res folder.

You can open files from the these sources using the code below:

import android.net.Uri;
import java.io.File;
import com.pdftron.pdf.config.ViewerConfig;
import com.pdftron.pdf.controls.DocumentActivity;

// Set the cache location using the config to store the cache file
ViewerConfig config = new ViewerConfig.Builder().openUrlCachePath(this.getCacheDir().getAbsolutePath()).build();

// from internal storage
final Uri uri = Uri.fromFile(new File("myLocalFilePath"));
// from content uri
final Uri uri = Uri.parse("myContentUri");
// from http/https
final Uri uri = Uri.parse("myFileLink");
// from assets
final Uri uri = Uri.parse("file:///android_asset/my_file.pdf");

// intent builder
Intent intent = DocumentActivity.IntentBuilder.fromActivityClass(this, DocumentActivity.class)
        .withUri(uri)
        .usingConfig(config)
        .usingTheme(R.style.PDFTronAppTheme)
        .build();
startActivity(intent);
A cache location is preferred when loading contents from web servers.

If you did not request Storage permission, the app sandbox is recommended for cache path, otherwise you have control over where you would like to store the cache file.

Next step

Customize

Get the answers you need: Chat with us