Some test text!
Xamarin / Android
You have a few options to open a document such as with an activity, fragment, or view. A diagram of the overall view hierarchy can be found here: View hierarchy.
Apryse's Android SDK ships with DocumentActivity
, an all-in-one document reader and PDF editor. In addition to PDF files, it also supports viewing other file formats such as .docx
, .doc
, .pptx
, .xlsx
, .md
, .cbz
and various image formats. In this activity you can also read, annotate, sign, fill in PDF forms and more.
DocumentActivity
extends Android's AppCompatActivity
and follows Material design guidelines.
PDFTron.Android.Tools
NuGet package into your project.DocumentActivity
, we will need to add the Android permissions listed in this table . However if you would like to disable certain features and customize your document viewer, you should leave out unnecessary permissions.Enable largeHeap
:
<application
...
android:largeHeap="true"
android:usesCleartextTraffic="false">
</application>
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.AndroidManifest.xml
file, and also declare DocumentActivity
in the manifest file. The final AndroidManifest.xml
file should look something like this:
<manifest ...>
<!-- Required permissions are added here -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- Add enable largeHeap -->
<application
...
android:largeHeap="true"
android:usesCleartextTraffic="false">
<meta-data
android:name="pdftron_license_key"
android:value="your_license_key_goes_here"/>
<!-- 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>
Launch DocumentActivity
by specifiying a local file path, an HTTP/HTTPS url, or a Content Uri:
// from internal storage
var uri = Android.Net.Uri.FromFile(new Java.IO.File("myLocalFilePath"));
// from content uri
var uri = Android.Net.Uri.Parse("myContentUri");
// from http/https
var uri = Android.Net.Uri.Parse("myFileLink");
// from assets
var uri = Android.Net.Uri.Parse("file:///android_asset/my_file.pdf");
// intent builder
var intent = DocumentActivity.IntentBuilder.FromActivityClass(this, Java.Lang.Class.FromType(typeof(DocumentActivity)))
.WithUri(uri)
.Build();
StartActivity(intent);
If you would like to customize the appearance of the viewer activity, define PDFTronAppTheme
in res/values/styles.xml
:
<style name="PDFTronAppTheme" parent="PDFTronAppThemeBase">
<item name="colorPrimary">@color/app_color_primary_day</item>
<item name="colorPrimaryDark">@color/app_color_primary_dark_day</item>
<item name="colorAccent">@color/app_color_accent</item>
<!-- Action bar -->
<item name="actionModeBackground">?attr/colorPrimary</item>
<item name="windowActionModeOverlay">true</item>
</style>
You can learn more about this in the customize the viewer's theme guide .
DocumentActivity
uses the AppCompat
theme for material colors. Make sure that the value of android:theme
in your activity
tag also extends the AppCompat
theme.Also, if you would like to customize the UI components in DocumentActivity
, you can use ViewerConfig.Builder
. For example:
var builder = new pdftron.PDF.Config.ViewerConfig.Builder();
var config = builder
.FullscreenModeEnabled(true)
.MultiTabEnabled(true)
.DocumentEditingEnabled(true)
.LongPressQuickMenuEnabled(true)
.ToolbarTitle("Simple Reader")
.ShowSearchView(true)
.Build();
For details on customizing the UI and using ViewerConfig.Builder
, check out the configuration tutorial .
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales