pdfrx 1.1.21 copy "pdfrx: ^1.1.21" to clipboard
pdfrx: ^1.1.21 copied to clipboard

pdfrx is a rich and fast PDF viewer implementation built on the top of PDFium. The plugin supports Android, iOS, Windows, macOS, Linux, and Web.

pdfrx #

pdfrx is a rich and fast PDF viewer implementation built on the top of PDFium. The plugin supports Android, iOS, Windows, macOS, Linux, and Web.

Interactive Demo #

A demo site using Flutter Web

pdfrx

Multi-platform support #

  • Android
  • iOS
  • Windows
  • macOS
  • Linux (even on Raspberry PI)
  • Web (*using PDF.js) or Pdfium WASM (*experimental)

Example Code #

The following fragment illustrates the easiest way to show a PDF file in assets:

import 'package:pdfrx/pdfrx.dart';

...

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Pdfrx example'),
        ),
        body: PdfViewer.asset('assets/hello.pdf'),
      ),
    );
  }
}

Anyway, please follow the instructions below to install on your environment.

Getting Started #

Installation #

Add this to your package's pubspec.yaml file and execute flutter pub get:

dependencies:
  pdfrx: ^1.1.21

Note for Windows #

Ensure your Windows installation enables Developer Mode.

The build process internally uses symbolic links and it requires Developer Mode to be enabled. Without this, you may encounter errors like this.

Pdfium WASM support on Web #

pdfrx now supports Pdfium WASM on Web, for more informatin, see Enable Pdfium WASM support.

Deal with Password Protected PDF Files #

PdfViewer.asset(
  'assets/test.pdf',
  // Most easiest way to return some password
  passwordProvider: () => 'password',

  ...
),

For more customization and considerations, see Deal with Password Protected PDF Files using PasswordProvider.

Customizations/Features #

You can customize the behaviors and the viewer look and feel by configuring PdfViewerParams.

Text Selection #

The following fragment enables text selection feature:

PdfViewer.asset(
  'assets/test.pdf',
  params: PdfViewerParams(
    enableTextSelection: true,
    ...
  ),
  ...
),

For more text selection customization, see Text Selection.

PDF Feature Support #

Viewer Customization #

Additional Customizations #

Additional Widgets #

PdfDocumentViewBuilder/PdfPageView #

PdfPageView is just another PDF widget that shows only one page. It accepts PdfDocument and page number to show a page within the document.

PdfDocumentViewBuilder is used to safely manage PdfDocument inside widget tree and it accepts builder parameter that creates child widgets.

The following fragment is a typical use of these widgets:

PdfDocumentViewBuilder.asset(
  'asset/test.pdf',
  builder: (context, document) => ListView.builder(
    itemCount: document?.pages.length ?? 0,
    itemBuilder: (context, index) {
      return Container(
        margin: const EdgeInsets.all(8),
        height: 240,
        child: Column(
          children: [
            SizedBox(
              height: 220,
              child: PdfPageView(
                document: document,
                pageNumber: index + 1,
                alignment: Alignment.center,
              ),
            ),
            Text(
              '${index + 1}',
            ),
          ],
        ),
      );
    },
  ),
),

PdfDocument Management #

PdfDocumentViewBuilder can accept PdfDocumentRef from PdfViewer to safely share the same PdfDocument instance. For more information, see example/viewer/lib/thumbnails_view.dart.

Low Level PDF API #

197
likes
160
points
142k
downloads

Publisher

verified publisherespresso3389.jp

Weekly Downloads

pdfrx is a rich and fast PDF viewer implementation built on the top of PDFium. The plugin supports Android, iOS, Windows, macOS, Linux, and Web.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

collection, crypto, ffi, flutter, http, path, path_provider, rxdart, synchronized, url_launcher, vector_math, web

More

Packages that depend on pdfrx