native_pdf_renderer 2.3.2

Flutter Android iOS web

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

PDF Renderer #

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

We also support the package for easy display PDF documents native_pdf_view

Getting Started #

In your flutter project add the dependency:

pub package

dependencies:
  native_pdf_renderer: any

For web add lines in index.html before importing main.dart.js:

<script src="//cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.min.js"></script>
<script type="text/javascript">
  pdfjsLib.GlobalWorkerOptions.workerSrc = "//cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.worker.min.js";
</script>

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();
    runApp(
      MaterialApp(
        home: Scaffold(
          body: Center(
            child: Image(
              image: MemoryImage(pageImage.bytes),
            ),
          ),
        ),
        color: Colors.white,
      )
    );
  } on PlatformException catch (error) {
    print(error);
  }
}

Api #

PdfDocument #

ParameterDescriptionDefault
sourceNameNeeded for toString method. Contains a method for opening a document (file, data or asset)-
idDocument unique id. Generated when opening document.-
pagesCountAll pages count in document. Starts from 1.-
isClosedIs the document closed-

Document open:

// From assets (Android, Ios, MacOs, Web)
PdfDocument.openAsset('assets/sample.pdf')

// From file (Android, Ios, MacOs)
PdfDocument.openFile('path/to/file/on/device')

// From data (Android, Ios, MacOs, Web)
PdfDocument.openData(uint8Data)

Open page:

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

Close document:

document.close();

PdfPage #

ParameterDescriptionDefault
documentParent documentParent
idPage unique id. Needed for rendering and closing page. Generated when opening page.-
widthPage source width in pixels, int-
heightPage source height in pixels, int-
isClosedIs the page closedfalse

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 #

ParameterDescriptionDefault
idPage unique id. Needed for rendering and closing page. Generated when render page.-
pageNumberPage number. The first page is 1.-
widthWidth of the rendered area in pixels, int-
heightHeight of the rendered area in pixels, int-
bytesRendered image result, Uint8List-
formatRendered image compression format, for web always PNGPdfPageFormat.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

page.close();

* 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

14
likes
110
pub points
93%
popularity

Publisher

serge.software

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

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

extension, flutter, flutter_web_plugins, image, js, meta, synchronized, uuid

More

Packages that depend on native_pdf_renderer