native_pdf_renderer 5.0.0+1 copy "native_pdf_renderer: ^5.0.0+1" to clipboard
native_pdf_renderer: ^5.0.0+1 copied to clipboard

Flutter plugin to render PDF pages as images on Web, MacOS, Windows, Android and iOS.

Plugin renamed and republished as [pdfx] #

[pdfx] on

Some smaller api changes


  1. Replace dependencies
-   native_pdf_renderer: ^4.0.1
+   pdfx: ^1.0.0
  1. Renamed PdfPageFormat -> PdfPageImageFormat
  2. Re-case values PdfPageImageFormat{JPEG,PNG,WEBP} -> PdfPageImageFormat{jpeg,png,webp}

PDF Renderer #

Flutter Plugin to render PDF pages as images on Web, MacOs 10.11+, Android 5.0+, iOS and Windows.

We also support the package for easy display PDF documents native_pdf_view

Getting Started #

In your flutter project add the dependency:

pub package

  native_pdf_renderer: any

For web add lines in index.html before importing main.dart.js:
note that the files have different names

<script src="" type="text/javascript"></script>
<script type="text/javascript">
  pdfjsLib.GlobalWorkerOptions.workerSrc = "";
  pdfRenderOptions = {
    cMapUrl: '',
    cMapPacked: true,

for windows the pdfium version used can be overridden by the base flutter application by adding the following line to the host apps CMakeLists.txt file:


Usage example #

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:native_pdf_renderer/native_pdf_renderer.dart';

void main() async {
  try {
    final document = await PdfDocument.openAsset('assets/sample.pdf');
    final page = await document.getPage(1);
    final pageImage = await page.render(width: page.width, height: page.height);
    await page.close();
        home: Scaffold(
          body: Center(
            child: Image(
              image: MemoryImage(pageImage.bytes),
        color: Colors.white,
  } on PlatformException catch (error) {

Api #

PdfDocument #

Parameter Description Default
sourceName Needed for toString method. Contains a method for opening a document (file, data or asset) -
id Document unique id. Generated when opening document. -
pagesCount All pages count in document. Starts from 1. -
isClosed Is the document closed -

Local document open:

// From assets (Android, Ios, MacOs, Web)

// From file (Android, Ios, MacOs)

// From data (Android, Ios, MacOs, Web)
PdfDocument.openData((FutureOr<Uint8List>) data)

Network document open:

Install [network_file] package (supports all platforms):

flutter pub add internet_file

And use it

import 'package:internet_file/internet_file.dart';


Open page:

final page = document.getPage(pageNumber); // Starts from 1

Close document:


PdfPage #

Parameter Description Default
document Parent document Parent
id Page unique id. Needed for rendering and closing page. Generated when opening page. -
width Page source width in pixels, int -
height Page source height in pixels, int -
isClosed Is the page closed false

Render image:

final pageImage = page.render(
  // rendered image width resolution, required
  width: page.width * 2,
  // rendered image height resolution, required
  height: page.height * 2,

  // Rendered image compression format, also can be PNG, WEBP*
  // Optional, default: PdfPageFormat.PNG
  // Web not supported
  format: PdfPageFormat.JPEG,

  // Image background fill color for JPEG
  // Optional, default '#ffffff'
  // Web not supported
  backgroundColor: '#ffffff',

  // Crop rect in image for render
  // Optional, default null
  // Web not supported
  cropRect: Rect.fromLTRB(left, top, right, bottom),

PdfPageImage #

Parameter Description Default
id Page unique id. Needed for rendering and closing page. Generated when render page. -
pageNumber Page number. The first page is 1. -
width Width of the rendered area in pixels, int -
height Height of the rendered area in pixels, int -
bytes Rendered image result, Uint8List -
format Rendered image compression format, for web always PNG PdfPageFormat.PNG

Close page:
Before open new page android asks to close the past.
If this is not done, the application may crash with an error


* PdfPageFormat.WEBP support only on android

Rendering additional info #

On Web #

This plugin uses the PDF.js

On Android #

This plugin uses the Android native PdfRenderer

On Ios & MacOs #

This plugin uses the IOS native CGPDFPage

On Windows #

This plugin use PDFium

pub points



Flutter plugin to render PDF pages as images on Web, MacOS, Windows, Android and iOS.

Repository (GitHub)
View/report issues


API reference


MIT (license)


flutter, pdfx


Packages that depend on native_pdf_renderer