Some test text!
Android / Guides / 2. View a document
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 in our document viewer overview .
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="false">
<!-- 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>
Read more: detailed description of permission requirements .
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.
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;
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.
If you require more customizability options, please use PdfViewCtrlTabHostFragment2
since it gives you full control over UI and behavior customization. Read more on the different components in the viewer overview guide for Andriod .
Your app should look something like this:
You can explore the features of the viewer and also many customization 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);
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.
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales