Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Flutter plugin: Renders PDFs to bitmaps using native renderers.

License

Notifications You must be signed in to change notification settings

cloudacy/pdf_image_renderer

Repository files navigation

pdf_image_renderer

Renders PDFs to bitmaps using native renderers.

Usage

See the example folder for a fully working flutter example.

class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
Uint8List image;

void renderPdfImage() async {
// Get a path from a pdf file (we are using the file_picker package (https://pub.dev/packages/file_picker))
String path = await FilePicker.getFilePath(type: FileType.custom, allowedExtensions: ['pdf']);

// Initialize the renderer
final pdf = PdfImageRenderer(path: path);

// open the pdf document
await pdf.open(
// password: 'password', // optional (iOS and Android 15.0+ support - ignored otherwise)
)

// open a page from the pdf document using the page index
await pdf.openPage(pageIndex: 0);

// get the render size after the page is loaded
final size = await pdf.getPageSize(pageIndex: 0);

// get the actual image of the page
final img = await pdf.renderPage(
pageIndex: pageIndex,
x: 0,
y: 0,
width: size.width, // you can pass a custom size here to crop the image
height: size.height, // you can pass a custom size here to crop the image
scale: 1, // increase the scale for better quality (e.g. for zooming)
background: Colors.white,
);

// close the page again
await pdf.closePage(pageIndex: 0);

// close the PDF after rendering the page
pdf.close();

// use setState to update the renderer
setState(() {
image = img;
});
}

@override
void initState() {
super.initState();
}


// you can use this image later in your build function
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('pdf_image_renderer'),
),
body: Center(
child: image != null ? Image(image: MemoryImage(image)) : Text("Loading..."),
)
)
);
}
}

About

Flutter plugin: Renders PDFs to bitmaps using native renderers.

Topics

Resources

Readme

License

MIT license

Stars

Watchers

Forks

Contributors