In this article, learn to use the .NET MAUI PDF viewer control in a native Android application and view a PDF document.
Step 1:
Before creating a Android project, create a .NET MAUI class library project and delete the Platforms folder and the Class1.cs file from it. Then add the classes named EmbeddedExtensions, EmbeddedPlatformApplication, EmbeddedWindowHandler, and EmbeddedWindowProvider to the created .NET MAUI class library project. The required code for these classes are available here
Step 2:
Next in the same solution, create a .NET MAUI single project. This project is used to register the handlers required to render the PDF viewer control. After including the project in the solution, follow the steps mentioned here
Step 3:
Install the Syncfusion.Maui.PdfViewer nuget package from nuget.org into the created .NET MAUI single project.
Step 4:
Register the Syncfusion® core handler in the MauiProgram.cs file of the .NET MAUI single project by calling the ConfigureSyncfusionCore method.
public static MauiApp CreateMauiApp<TApp>(Action<MauiAppBuilder>? additional = null) where TApp : App
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<TApp>()
.ConfigureSyncfusionCore()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
}); Step 5:
Create the native Android application project in which you want to add the PDF viewer and install the Syncfusion.Maui.PdfViewer nuget package from nuget.org.
Step 6:
In the project file of the native Android application, add <UseMaui>true <UseMaui> to enable the .Net Maui support demonstrated as follows.
<PropertyGroup>
<TargetFramework>net10.0-android</TargetFramework>
<OutputType>Exe</OutputType>
<Nullable>enable</Nullable>
<UseMaui>true</UseMaui>
<ImplicitUsings>enable</ImplicitUsings>
<SupportedOSPlatformVersion>15.0</SupportedOSPlatformVersion>
</PropertyGroup> Step 7:
Initialize .NET MAUI in the native Android project by creating a MauiApp object and using the UseMauiEmbedding method in the MainActivity.cs file as follows.
public class MainActivity : Activity
{
public static readonly Lazy<MauiApp> MauiApp = new(() =>
{
return MauiProgram.CreateMauiApp(builder =>
{
builder.UseMauiEmbedding();
});
});
public static bool UseWindowContext = true;
private SfPdfViewer _pdfViewer;
protected override void OnCreate(Bundle? savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Disable edge-to-edge rendering
WindowCompat.SetDecorFitsSystemWindows(Window, true);
// Initialize the Maui app
var mauiApp = MauiApp.Value;
var _mauiContext = UseWindowContext
? mauiApp.CreateEmbeddedWindowContext(this) // Create window context
: new MauiContext(mauiApp.Services); // Create app context
……
……
} Step 8:
Create a new folder with the name “Assets” in the Android app project and include the PDF document to be loaded, inside the folder. Set the Build Action of the PDF file to Embedded Resource. In this example, a PDF named “PDF_Succinctly.pdf” is used.
Step 9:
Create the SfPdfViewer, convert it into a native Android view, and assign it as the activity’s content within the OnCreate() method.
protected override void OnCreate(Bundle? savedInstanceState)
{
…..
…..
// Initialize and configure the SfPdfViewer
_pdfViewer = new SfPdfViewer();
// Set the document source for SfPdfViewer control
var assembly = Assembly.GetExecutingAssembly();
_pdfViewer.DocumentSource = this.GetType().Assembly.GetManifestResourceStream("NativeEmbeddingPDFViewerDemoAndroid.Droid.Assets.PDF_Succinctly.pdf");
// Convert SfPdfViewer to an Android view
Android.Views.View pdfViewerView = _pdfViewer.ToPlatform(_mauiContext);
// Wrap the view to respect system window insets
var rootLayout = new Android.Widget.FrameLayout(this);
rootLayout.SetFitsSystemWindows(true);
rootLayout.AddView(pdfViewerView);
SetContentView(rootLayout);
} Step 10:
In the solution, set the native Android project as the start-up project. Build, deploy and run the project.
Conclusion
We hope you enjoyed learning how to integrate .NET MAUI PDF Viewer in a native Android application.
Refer to our .NET MAUI PDF Viewer’s feature tour page to learn about its other groundbreaking feature representations. You can also explore our .NET MAUI PDF Viewer Documentation to understand how to present and manipulate data.
For current customers, check out our .NET MAUI components on the License and Downloads page. If you are new to Syncfusion, try our 30-day free trial to explore our .NET MAUI PDF Viewer and other .NET MAUI components.
Please let us know in the following comments if you have any queries or require clarifications. You can also contact us through our support forums, support ticket or feedback portal. We are always happy to assist you!