All Projects → PSPDFKit → Xamarin-Android

PSPDFKit / Xamarin-Android

Licence: other
PSPDFKit for Android wrapper for the Xamarin platform.

Programming Languages

C#
18002 projects
powershell
5483 projects
shell
77523 projects

Projects that are alternatives of or similar to Xamarin-Android

Xamarin-iOS
PSPDFKit for iOS wrapper for the Xamarin platform.
Stars: ✭ 14 (-22.22%)
Mutual labels:  wrapper, xamarin, bindings, pspdfkit
bottomnavigationviewex-android-binding
Xamarin.Android Binding Library for Ittianyu BottomNavigationViewEx
Stars: ✭ 25 (+38.89%)
Mutual labels:  xamarin, bindings, xamarin-android
D2sqlite3
A small wrapper around SQLite for the D programming language
Stars: ✭ 67 (+272.22%)
Mutual labels:  wrapper, bindings
Tdl
Node.js bindings to TDLib.
Stars: ✭ 177 (+883.33%)
Mutual labels:  wrapper, bindings
ShortcutBadger
Xamarin.Android library supports badge notification like iOS in Samsung, LG, Sony and HTC launchers. Port of
Stars: ✭ 24 (+33.33%)
Mutual labels:  xamarin, xamarin-android
Connectivityplugin
Connectivity Plugin for Xamarin and Windows
Stars: ✭ 253 (+1305.56%)
Mutual labels:  xamarin, xamarin-android
Rusqlite
Ergonomic bindings to SQLite for Rust
Stars: ✭ 1,008 (+5500%)
Mutual labels:  wrapper, bindings
Cognitive-Face-Xamarin
A client library that makes it easy to work with the Microsoft Cognitive Services Face API on Xamarin.iOS, Xamarin.Android, and Xamarin.Forms and/or Portable Class Libraries.
Stars: ✭ 18 (+0%)
Mutual labels:  xamarin, xamarin-android
Denunciado
This project born from the need from people to have a way of communication between municipalities and communities. Some municipalities, have their platforms, but they are complex to validate the veracity of complaints. Denounced, it was born with the purpose of offering a free platform to these municipalities. Denounced consists of three main modules developed with Microsoft technologies, using the .Net Framework and Xamarin for its development: 1. Back End Web Project: Module of administration of the complaints, by the employees of the town councils. In this tool, the employees of the city council receive, validate, report and close the complaints, after being served. 2. Web Portal Client: It consists of a web project, so that the community make their complaints, in the same, the users of the service create a profile, must specify when making their complaint, evidence to support this. Through the portal, they can see the complaints of other community members, follow it, give their opinion or provide possible solutions or more evidence. 3. Mobile Project: It has the same functionalities as the web portal, with the addition, that the automatic location can be sent, from the cell phone.
Stars: ✭ 183 (+916.67%)
Mutual labels:  xamarin, xamarin-android
Prototype.Forms.Controls
This sample app contains a random mixture of Xamarin/Xamarin.Forms controls, views, and functionality snippets that I've created.
Stars: ✭ 21 (+16.67%)
Mutual labels:  xamarin, xamarin-android
LaunchMapsPlugin
Launch External Maps Plugin for Xamarin and Windows
Stars: ✭ 49 (+172.22%)
Mutual labels:  xamarin, xamarin-android
ideabag2
Idea Bag 2 provides programmers of all proficiency levels ideas for pet projects to work on when they are looking to increase their proficiency in a particular programming language.
Stars: ✭ 51 (+183.33%)
Mutual labels:  xamarin, xamarin-android
Xamarin Demos
This repository contains the Syncfusion Xamarin UI control’s samples and the guide to use them.
Stars: ✭ 218 (+1111.11%)
Mutual labels:  xamarin, xamarin-android
Genepi
Automatic generation of N-API wrapper from a C++ library
Stars: ✭ 45 (+150%)
Mutual labels:  wrapper, bindings
Xamarin Playground
Random cool stuff I play around using Xamarin.. :3 Some of these cool projects I feature them on my blog, with step by step explanation. :) Don't forget to check it out. Go to: theconfuzedsourcecode.wordpress.com
Stars: ✭ 183 (+916.67%)
Mutual labels:  xamarin, xamarin-android
Qt5.cr
Qt5 bindings for Crystal, based on Bindgen
Stars: ✭ 182 (+911.11%)
Mutual labels:  wrapper, bindings
Wires
Light binding library for Xamarin
Stars: ✭ 34 (+88.89%)
Mutual labels:  xamarin, xamarin-android
Cppsharp
Tools and libraries to glue C/C++ APIs to high-level languages
Stars: ✭ 2,221 (+12238.89%)
Mutual labels:  xamarin, bindings
Improvexamarinbuildtimes
Tips and tricks on how to speed up the time it takes to compile a Xamarin app
Stars: ✭ 180 (+900%)
Mutual labels:  xamarin, xamarin-android
Xamarin.Components-Architecture
A humble attempt to make Xamarin follows the components architecture
Stars: ✭ 20 (+11.11%)
Mutual labels:  xamarin, xamarin-android

Xamarin PSPDFKit.Android Bindings

Xamarin.Android Bindings for PSPDFKit v8.4.0.

PSPDFKit

The PSPDFKit SDK is a framework that allows you to view, annotate, sign, and fill PDF forms on iOS, Android, Windows, macOS, and Web.

PSPDFKit Instant adds real-time collaboration features to seamlessly share, edit, and annotate PDF documents.

Related

Support, Issues and License Questions

PSPDFKit offers support for customers with an active SDK license via https://pspdfkit.com/support/request/

Are you evaluating our SDK? That's great, we're happy to help out! To make sure this is fast, please use a work email and have someone from your company fill out our sales form: https://pspdfkit.com/sales/

Requirements

PSPDFKit runs on Android devices running:

  • Xamarin.Android >= 13.0.0.0
  • Microsoft Mobile OpenJDK >= 11.0
  • Android 4.4 or newer / API level 19 or higher
  • 32/64-bit ARM (armeabi-v7a with NEON/ arm64-v8a) or 32/64-bit Intel x86 CPU.
  • Projects using PSPDFKit.Android.dll must set Target Framework to API 31 (Android 12.0) or higher.

Integrating PSPDFKit

There's 2 ways to integrate PSPDFKit into your project. We highly recommend using our nuget packages from nuget.org in Visual Studio as it requires less work for the customer and also eliminates the possibility of build errors, which can happen from time to time.

Integrating PSPDFKit via Nuget (Recommended)

  1. Right-Click on your project in Visual Studio and select "Manage Nuget Packages…"
  2. In the Browse section for "nuget.org" search for "PSPDFKit"

  1. Select the PSPDFKit.Android package.
  2. Tap on "Add Package" to add the nuget package to your project.

Now you are done and can skip to Adding additional resources!

Integrating PSPDFKit via DLLs (Advanced)

Step 1 - Get PSPDFKit .aar File

Run ./build.sh (on macOS) or ./build.ps1 (on Windows, PowerShell) command from root directory. This will download all the required resources needed by the binding. Note that running this will require you to have Xamarin already installed on your computer.

💡 Note: Ensure the files are really named pspdfkit-x.x.x.aar so there is no hidden .zip file ending. OS X likes to add these things and doesn't show them by default. Use the Inspector to be sure.

Visual Studio will use the default Java, but this can be customized in Preferences -> SDK Locations -> Java SDK (JDK).

Step 2 - Get your Dlls

You have two options to get it:

Build from PSPDFKit.Android.sln

  1. Open PSPDFKit.Android.sln in Visual Studio.
  2. Build the project.
  3. Get the dll from the PSPDFKit.Android/bin folder.
  4. Enjoy.

Build from Terminal

  1. Just grab PSPDFKit.Android.dll from the root folder, if you successfuly followed Step 1 it should be there.
  2. Enjoy.

Integrating the dlls into your own Project

In order to use PSPDFKit.Android.dll with your own project you will need to add the dll as a reference to your project. You can achieve this by doing the following:

  1. Right click in your References folder from your project and select Edit References...
  2. Select .Net Assembly tab and click Browse
  3. Locate your PSPDFKit.Android.dll copy and add it.

Adding additional resources

First you need to add the pspdfkit-proguard.cfg file to your project, see Xamarin Android and ProGuard section.

💡 Note: If you do not add the pspdfkit-proguard.cfg file to your project you will run into errors

Once you have done this you will need to add some NuGet packages to you project

If you need to know how to add NuGet packages to your Xamarin project please refer to Walkthrough: Including a NuGet in your project from Xamarin site.

Usage

PSPDFKit can display documents either in a new Activity or a Fragment you include into your hierarchy.

Note that currently only local files are supported for PSPDFKit.

Xamarin Android and ProGuard

In order to integrate ProGuard with Xamarin you can read the following documentation on Xamarin's Site.

Starting PSPDFKit v6.1.0 you will need to add the pspdfkit-proguard.cfg file to your project's root directory and then add two entries in your project's csproj as follows:

First, inside your DEBUG configuration property group:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  ...
  <AndroidR8ExtraArguments>--pg-conf "$(MSBuildProjectDirectory)\pspdfkit-proguard.cfg"</AndroidR8ExtraArguments>
</PropertyGroup>

The above assumes that the pspdfkit-proguard.cfg file is in your root project directory, if not adjust the value file path to match your own scenario.

Second, add the pspdfkit-proguard.cfg file via the following item group to your csproj as shown here:

<ItemGroup>
  <ProguardConfiguration Include="pspdfkit-proguard.cfg" />
</ItemGroup>

Again the above assumes that the pspdfkit-proguard.cfg file is in your root project directory, if not adjust the value file path to match your own scenario.

💡 Note: If you do not add the pspdfkit-proguard.cfg file to your project you will run into errors like the following:

R8 : warning : Missing class: org.conscrypt.ConscryptHostnameVerifier
R8 : warning : Missing class: com.android.tools.lint.detector.api.Detector
R8 : warning : Missing class: com.android.tools.lint.detector.api.Detector$UastScanner
R8 : warning : Missing class: com.android.tools.lint.client.api.UElementHandler
R8 : warning : Missing class: com.android.tools.lint.client.api.IssueRegistry
R8 : error : Compilation can't be completed because some library classes are missing.

Checking for Compatibility

You can include PSPDFKit into applications which will be distributed to devices not supported by PSPDFkit. In that case you can attempt initializing and catch PSPDFKitInitializationFailedException to check for device compatibility.

try {
	PSPDFKitGlobal.Initialize(this, "<YOUR LICENSE>");
} catch (PSPDFKitInitializationFailedException ex) {
	Console.WriteLine ("Current device is not compatible with PSPDFKit: {0}", ex.Message);
}

Display PSPDFKit Activity

  • Add PSPDFKit viewer activity to your applications AndroidManifest.xml
<application android:largeHeap="true">
    <activity android:name="com.pspdfkit.ui.PdfActivity"
              android:windowSoftInputMode="adjustNothing" />
</application>

You can use android:theme attribute to customize actionbar, background and other elements of the activity theme if you so desire.

  • Make sure you have android:largeHeap="true" property in your <application> tag in AndroidManifest.xml. Rendering PDF files is memory intensive and this property will ensure your app has enough heap allocated to avoid out of memory errors.

  • Create PdfActivityConfiguration object and then call PdfActivity.ShowDocument() to display the document. Document location is expressed with an Uri object.

var pdfDocument = Android.Net.Uri.FromFile (new Java.IO.File (Android.OS.Environment.ExternalStorageDirectory, "document.pdf"));
var configuration = new PdfActivityConfiguration.Builder("<YOUR_LICENSE>").Build();
PdfActivity.ShowDocument(this, pdfDocument, configuration);

You can create an Uri object from file using Android.Net.Uri.FromFile(File) call or you can pass in Uri returned by Storage Access Framework. For all configuration options refer to included JavaDoc.

Display PSPDFKit Fragment

  • Make sure you have android:largeHeap="true" property in your <application> tag in AndroidManifest.xml. Rendering PDF files is memory intensive and this property will ensure your app has enough heap allocated to avoid out of memory errors.
<application android:largeHeap="true">
    ...
</application>
  • Create PdfConfiguration object and then call PdfFragment.NewInstance() to create a new PdfFragment instance for a document.
  • Attach the fragment to your view hierarchy. Remember that fragments are retained over configuration changes, so do not recreate fragment if it's already attached - that will lead to bugs and out of memory errors.
var pdfDocument = Android.Net.Uri.FromFile (new Java.IO.File (Android.OS.Environment.ExternalStorageDirectory, "document.pdf"));
var configuration = new PdfConfiguration.Builder("<YOUR_LICENSE>")
	.ScrollDirection (PageScrollDirection.Horizontal)
	.Build();

var fragment = PdfFragment.NewInstance(pdfDocument, configuration);
SupportFragmentManager.BeginTransaction().Replace(Resource.Id.Content, fragment).Commit();

Note that the PdfFragment extends AndroidX.Fragment.App.Fragment and not Android.App.Fragment.

Render Page to a Bitmap

You can use PSPDFKit to render PDF to bitmaps without showing them in activities. To do that, use PSPDFKitGlobal and PdfDocument class calls.

Example:

PSPDFKitGlobal.Initialize (this, "<YOUR LICENSE>");
try {
	var pdfDocument = PSPDFKitGlobal.OpenDocument (this, Android.Net.Uri.FromFile (new Java.IO.File(Android.OS.Environment.ExternalStorageDirectory, "document.pdf")));
	var pageToRender = 1; // This is 0-indexed, use pdfDocument.PageCount to retrieve number of pages
	var pageBitmap = pdfDocument.RenderPageToBitmap(this,
		pageToRender,
		// This is the size of bitmap that will be generated
		pdfDocument.GetPageSize (pageToRender).Width,
		pdfDocument.GetPageSize (pageToRender).Height);
} catch (IOException ex) {
	Console.WriteLine ("Failed to open PDF document: {0}", ex.Message);
}

Customization

To customize PdfActivity UI elements, use theme based on Theme.AppCompat. PSPDFKit will color actionbar and other elements according to colorPrimary and colorAccent attributes. Example theme definition:

<style name="MyApplicationTheme.Theme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/mymain_color</item>
    <item name="colorPrimaryDark">@color/mymain_color_dark</item>
    <item name="colorAccent">@color/mymain_color_accent</item>
</style>

And then it should be applied in AndroidManifest.xml:

<activity android:name="com.pspdfkit.ui.PdfActivity"
      android:windowSoftInputMode="adjustNothing"
      android:theme="@style/MyApplicationTheme.Theme" />

Other configuration options for UI elements (icons, element sizes) can be found in PdfActivityConfiguration class.

More Information

For more documentation about PSPDFKit check out PSPDFKit online documentation and bundled Javadoc.

Xamarin Forms

You can use PSPDFKit SDK with Xamarin.Forms in 3 ways:

  1. Using a Custom PageRenderer and embedding a PdfFragment, see PdfViewerPageRenderer.cs and PdfViewerPage.cs inside our provided Xamarin.Forms example.
  2. Showing a PdfActivity. See the provided Xamarin.Forms example for further details.
  3. Using Xamarin.Forms embedding, you can take any ContentPage and add it to your native applications. This is also showcased by our PSPDFCatalog example app.

PSPDFKit Instant

Support for Instant was added with the Xamarin.Android Bindings for PSPDFKit 4.5.1 for Android.

With PSPDFKit Instant, it’s easier than ever to add real-time collaboration features to your PSPDFKit-powered app, allowing your users to seamlessly share, edit, and annotate PDF documents across iOS, Android, and web. With just a few lines of code, PSPDFKit Instant gives your users a massive productivity boost.

For more information about Instant, please have a look at our website.

Examples

You can find several sample projects in the samples folder, including a catalog and Xamarin.Forms example.

How to Run the Example Projects

  1. Complete advanced setup.
  2. Open the PSPDFKit.Android.sln solution in Visual Studio.
  3. Select the example project and device you want to run it on (alternatively you can also right-click on the project and select "Build Project Name").

4. Tap on the triangle on the left to run the project.

PSPDFKit Instant Example

This example is included in the PSPDFCatalog example, but you can also find the code here.

The PSPDFKit Instant example shows how easy and efficient Instant works. Just go the Instant demo page and tap on Instant on Android, this will show a code at step three, which you have to enter in the example on your device. Afterwards you'll be connected to the server and you can start testing!

PSPDFCatalog

The PSPSDFCatalog project has various little example projects in it, including a basic example, which opens a demo document in PSPSDFKit, an example for automatically filling out forms, or one for creating a password protected PDF.

Xamarin.Forms

XFSample.Droid is an example showcasing how to build an app with PSPDFKit using Xamarin.Forms.

AndroidSimple

AndroidSimple is an example project showing showing how to open and present document, or how to open a document from various file providers or the local file directory.

Known Issues

Unsupported devices

Contributing

Please ensure you signed our CLA so we can accept your contributions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].