Skip to content

SyncfusionExamples/Integrating-.NET-MAUI-PDF-viewer-with-native-Android-application

Repository files navigation

Integrating .NET MAUI PDFViewer with native Android application

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.

View the sample on GitHub

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!

About

Integrating-.NET-MAUI-PDF- viewer-with-native-Android-application

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages