---
title: "Implementing custom print functionality in Android"
canonical_url: "https://www.nutrient.io/guides/android/knowledge-base/custom-print-functionality/"
md_url: "https://www.nutrient.io/guides/android/knowledge-base/custom-print-functionality.md"
last_updated: "2026-05-15T19:10:04.908Z"
description: "Nutrient Android SDK provides built-in printing capabilities, but sometimes you may need to implement custom print functionality."
---

Nutrient Android SDK provides built-in printing capabilities, but sometimes you may need to implement custom print functionality.

## Triggering a custom print flow

When you need to disable the default printing option and add a custom menu item for printing, you’ll need a way to initiate the printing process programmatically. Here’s how to do it:

- Nutrient provides a public API for this purpose called [`DocumentPrintManager`](https://www.nutrient.io/api/android/nutrient/com.pspdfkit.document.printing/-document-print-manager/index.html).

- This API allows you to trigger the printing process with custom options.

## Solution

To implement a custom print flow, follow these steps:

1. Disable the default print option:

   ```kotlin

   pdfActivityConfiguration.disablePrinting()
   ```

2. Add a custom menu item for printing in your UI.

3. In your `onOptionsItemSelected()` method, or wherever you handle the custom print menu item click, use the following code:

   ```kotlin

   DocumentPrintManager.get().print(context, document, printOptions)
   ```

- Where:
  - `context` is your Android context
  - `document` is your `PdfDocument` object
  - `printOptions` is an optional parameter to specify printing preferences

## Important notes

- This API only shows the operating system (OS) printing UI, and not Nutrient’s own UI where you can choose if annotations should be printed.

- You can still specify annotation printing preferences through the `printOptions` parameter.

- Currently, there’s no exposed API to show Nutrient’s own print options dialog before switching to OS printing.

## Conclusion

By using the `DocumentPrintManager` API, you can easily implement a custom print flow in your Nutrient-powered Android application. This approach gives you control over when and how the print dialog is triggered, while still leveraging Nutrient’s powerful printing capabilities.

Remember to test your implementation thoroughly to ensure it meets your specific requirements and provides a smooth user experience.

If you need further assistance or have questions about customizing the printing process, don’t hesitate to reach out to our [Support team](https://support.nutrient.io/hc/en-us/requests/new).
---

## Related pages

- [Allow Clear Text Traffic](/guides/android/knowledge-base/allow-clear-text-traffic.md)
- [Compose Qna](/guides/android/knowledge-base/compose-qna.md)
- [Disabling Annotation Rotation](/guides/android/knowledge-base/disabling-annotation-rotation.md)
- [Deleting Pages From A Pdf](/guides/android/knowledge-base/deleting-pages-from-a-pdf.md)
- [Easily disable share and print options in Android](/guides/android/knowledge-base/disable-share-documentinfo-print.md)
- [Managing touch scrolling in Compose containers](/guides/android/knowledge-base/document-view-inside-pager-scroll-handling.md)
- [Getting All Digital Signatures](/guides/android/knowledge-base/getting-all-digital-signatures.md)
- [Change page layout dynamically based on orientation](/guides/android/knowledge-base/dynamic-page-layout-when-changing-orientation.md)
- [Getting Signature Location](/guides/android/knowledge-base/getting-signature-location.md)
- [Invoke Search Programmatically](/guides/android/knowledge-base/invoke-search-programmatically.md)
- [Install Failed Insufficient Storage](/guides/android/knowledge-base/install-failed-insufficient-storage.md)
- [Intercepting Touch Events](/guides/android/knowledge-base/intercepting-touch-events.md)
- [Creating invisible digital signatures in Android](/guides/android/knowledge-base/invisible-signature.md)
- [Invoking Share Action Programmatically](/guides/android/knowledge-base/invoking-share-action-programmatically.md)
- [Making Form Elements Read Only](/guides/android/knowledge-base/making-form-elements-read-only.md)
- [Override Hyperlink Behavior](/guides/android/knowledge-base/override-hyperlink-behavior.md)
- [Runtime Permissions Cordova](/guides/android/knowledge-base/runtime-permissions-cordova.md)
- [Remove Tool Variant From Toolbar](/guides/android/knowledge-base/remove-tool-variant-from-toolbar.md)
- [Customize the overflow button color in Android](/guides/android/knowledge-base/styling-overflow-button.md)
- [Save signed PDFs directly to a remote server on Android](/guides/android/knowledge-base/save-signed-pdfs-to-remote-server.md)
- [Using Pspdfkit With Dynamic Feature Modules](/guides/android/knowledge-base/using-pspdfkit-with-dynamic-feature-modules.md)

