---
title: "Android generate PDF programmatically | Nutrient SDK"
canonical_url: "https://www.nutrient.io/guides/android/pdf-generation/programmatically/"
md_url: "https://www.nutrient.io/guides/android/pdf-generation/programmatically.md"
last_updated: "2026-05-30T02:20:01.169Z"
description: "Nutrient Android SDK offers several different ways to programmatically create PDF files. Check out the following guides for generating a:."
---

# Generate PDFs programmatically on Android

Nutrient Android SDK offers several different ways to programmatically create PDF files. Check out the following guides for generating a:

- [Blank PDF](https://www.nutrient.io/guides/android/features/document-creation.md)

- [PDF from HTML](https://www.nutrient.io/guides/android/pdf-generation/from-html.md)

- [PDF from images](https://www.nutrient.io/guides/android/pdf-generation/from-images.md)

- [PDF from a template](https://www.nutrient.io/guides/android/pdf-generation/from-template.md)

Optionally, you can also use Android’s built-in APIs provided by [`PdfDocument`](https://developer.android.com/reference/android/graphics/pdf/PdfDocument) to generate a PDF.

## Using the Android APIs

For maximum flexibility, you can write your own drawing code to generate PDFs. The provided APIs are fairly straightforward, so if you already have existing drawing code, this can be a good approach for PDF creation.

Here’s an example of how the API should be used:

### KOTLIN

```kotlin

// Create a new document.
val document = PdfDocument()

// Create the first page.
val firstPageInfo = PageInfo.Builder(100, 100, 1).create()
val firstPage = document.startPage(firstPageInfo)

// Draw to the first page.
val firstPageContent: View = getViewRepresentingTheFirstPage()
firstPageContent.draw(firstPage.canvas)
document.finishPage(firstPage)

// Create the second page.
val secondPageInfo = PageInfo.Builder(100, 100, 2).create()
val secondPage = document.startPage(secondPageInfo)

// Draw to the second page.
val secondPageContent: View = getViewRepresentingTheSecondPage()
secondPageContent.draw(secondPage.canvas)
document.finishPage(secondPage)

// Save the document.
document.writeTo(outputStream)
document.close()

```

### JAVA

```java

// Create a new document.
PdfDocument document = new PdfDocument();

// Create the first page.
PageInfo firstPageInfo = new PageInfo.Builder(100, 100, 1).create();
Page firstPage = document.startPage(firstPageInfo);

// Draw to the first page.
View firstPageContent = getViewRepresentingTheFirstPage();
firstPageContent.draw(firstPage.getCanvas());
document.finishPage(firstPage);

// Create the second page.
PageInfo secondPageInfo = new PageInfo.Builder(100, 100, 2).create();
Page secondPage = document.startPage(secondPageInfo);

// Draw to the second page.
View secondPageContent = getViewRepresentingTheSecondPage();
secondPageContent.draw(secondPage.getCanvas());
document.finishPage(secondPage);

// Save the document.
document.writeTo(outputStream);
document.close();

```
---

## Related pages

- [Effortlessly generate PDFs from images on Android](/guides/android/pdf-generation/from-images.md)
- [Generate blank PDFs on Android](/guides/android/features/document-creation.md)
- [Generate PDFs from HTML on Android](/guides/android/pdf-generation/from-html.md)
- [Generate PDF reports on Android](/guides/android/generating-pdfs/generating-pdf-reports.md)
- [Generate PDFs from a template on Android](/guides/android/pdf-generation/from-template.md)
- [PDF generation library for Android](/guides/android/pdf-generation.md)
- [Effortlessly generate PDF thumbnails on Android](/guides/android/pdf-generation/thumbnail-preview.md)

