native_pdf_renderer

Creator: coderz1093

Last updated:

Add to Cart

Description:

native pdf renderer

Plugin renamed and republished as [pdfx] #
[pdfx] on pub.dev
Some smaller api changes

Migration:

Replace dependencies

dependencies:
- native_pdf_renderer: ^4.0.1
+ pdfx: ^1.0.0
copied to clipboard

Renamed PdfPageFormat -> PdfPageImageFormat
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:

dependencies:
native_pdf_renderer: any
copied to clipboard
For web add lines in index.html before importing main.dart.js:
note that the files have different names
<script src="https://cdn.jsdelivr.net/npm/pdfjs-dist@2.7.570/build/pdf.js" type="text/javascript"></script>
<script type="text/javascript">
pdfjsLib.GlobalWorkerOptions.workerSrc = "https://cdn.jsdelivr.net/npm/pdfjs-dist@2.7.570/build/pdf.worker.min.js";
pdfRenderOptions = {
cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.7.570/cmaps/',
cMapPacked: true,
}
</script>
copied to clipboard
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:
set(PDFIUM_VERSION "4638" CACHE STRING "")
copied to clipboard
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);
}
}
copied to clipboard
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)
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((FutureOr<Uint8List>) data)
copied to clipboard
Network document open:
Install [network_file] package (supports all platforms):
flutter pub add internet_file
copied to clipboard
And use it
import 'package:internet_file/internet_file.dart';

PdfDocument.openData(InternetFile.get(
'https://github.com/rbcprolabs/packages.flutter/raw/fd0c92ac83ee355255acb306251b1adfeb2f2fd6/packages/native_pdf_renderer/example/assets/sample.pdf',
))
copied to clipboard
Open page:
final page = document.getPage(pageNumber); // Starts from 1
copied to clipboard
Close document:
document.close();
copied to clipboard
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),
);
copied to clipboard
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
page.close();
copied to clipboard
* 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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.