搜索插件、代码仓与 APP 分类

插件详情v1.1.5

flutter_fullpdfview

适用于 Android 和 IOS 的 PDF 查看器,包含缩放策略。基于 endigo 的 flutter_pdfview。

近 30 天下载
54
喜欢数
27
Pub 分数
40

安装插件

flutter pub add flutter_fullpdfview

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个用于在 Android 和 iOS 上显示 PDF 的 Flutter 包,支持自定义缩放策略。作为 flutter_pdfview 包的扩展构建,它提供了流畅、交互式的 PDF 阅读体验,支持缩放、平移和响应式布局调整。专为寻求可靠、跨平台解决方案以将 PDF 渲染集成到应用中的开发者设计,无需进行大量配置。

适合场景

  • 在移动应用中显示文档
  • 查看用户上传的PDF文件
  • 阅读电子书或手册
  • 在教育类应用程序中集成PDF
  • 渲染合同或表格

主要特点

  • 跨平台兼容性(Android 和 iOS)
  • 支持多种拟合策略
  • 缩放和拖动手势
  • 轻量且易于集成
  • 响应式布局处理

适合对象

  • 移动应用开发者
  • 文档管理应用
  • 电子学习平台
  • 内容分发应用
  • PDF密集型企业应用

使用建议

  • 需要原生平台权限以访问文件
  • 仅限 Android 和 iOS(无网页/桌面端支持)
  • 性能可能因大PDF文件而异
  • 无内置的PDF编辑功能
  • 依赖于底层的 flutter_pdfview 实现

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

flutter_fullpdfview

Native PDF View for iOS and Android

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

dependencies:
  flutter_fullpdfview: latest_version
2. Install it

You can install packages from the command line:

with Flutter:

$ flutter packages get

Alternatively, your editor might support pub get or flutter pub get. Check the docs for your editor to learn more.

3. Setup
iOS

Opt-in to the embedded views preview by adding a boolean property to the app's Info.plist file with the key io.flutter.embedded_views_preview and the value YES.

4. Import it

Now in your Dart code, you can use:

import 'package:flutter_fullpdfview/flutter_fullpdfview.dart';

Options

Name Android iOS
onViewCreated V V
onRender V V
onPageChanged V V
onError V V
onPageError V X
gestureRecognizers V V
filePath V V
fitEachPage V V
defaultPage V V
dualPageMode V V
displayAsBook V V
dualPageWithBreak V V
enableSwipe V V
swipeHorizontal V V
password V V
nightMode V X
password V V
autoSpacing V V
pageFling V V
pageSnap V V
backgroundColor V V
fitPolicy V X

Only black and white are supported on Android and iOS at the moment!

Controller Options

Name Description Parameters Return
getPageCount Get total page count - Future<int>
getCurrentPage Get current page - Future<int>
setPage Go to/Set page int page Future<bool>
setPageWithAnimation Go to/Set page int page Future<bool>
resetZoom Go page and fitToWidth int page Future<bool>
getZoom Get the current zoom double zoom Future<double>
setZoom Set the current zoom double zoom Future<double>
getPageWidth Get the pdf width double width Future<double>
getPageHeight Get the pdf height double height Future<double>

Example

PDFView(
  filePath: path,
  enableSwipe: true,
  fitEachPage: true,
  swipeHorizontal: true,
  autoSpacing: false,
  pageFling: false,
  defaultPage: 8,
  dualPageMode: orientation == Orientation.landscape,
  displayAsBook: true,
  onRender: (_pages) {
    setState(() {
      pages = _pages;
      isReady = true;
    });
  },
  onError: (error) {
    print(error.toString());
  },
  onPageError: (page, error) {
    print('$page: ${error.toString()}');
  },
  onViewCreated: (PDFViewController pdfViewController) {
    _controller.complete(pdfViewController);
  },
  onPageChanged: (int page, int total) {
    print('page change: $page/$total');
  },
),

For production usage

If you use proguard, you should include this line.

-keep class com.shockwave.**

Dependencies

Android

apv Updated From: AndroidPdfViewer

iOS (only support> 11.0)

PDFKit

所属分类

源码仓库

使用此插件的项目

暂无相关数据。