Flutter文档或内容查看插件dd_viewer的使用
Flutter文档或内容查看插件dd_viewer的使用
dd_viewer
dd_viewer 是一个通用的预览设备,用于预览PDF、Word、Excel、文本、PNG和JPG文件。
该插件提供了一个办公预览套件,支持预览PDF、Excel、Word等类型的文件。它不依赖于腾讯TBS。
Android
在 android/build.gradle
中添加以下代码:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
iOS
请在 Podfile 文件中设置最低版本为12:
platform :ios, '12.0'
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
举个例子:
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
end
end
end
打开Excel文件
DdViewerApi().openXlsFile(FileX.netWork(url: 'http://host:port/wd/excel.xls'));
使用
dd_viewer 支持打开网络文件和本地文件。网络文件将使用 dio
下载到本地缓存目录。
file: FileX.netWork(); // 网络文件
file: FileX.file(); // 本地文件
file: FileX.path(); // 文件路径
完整例子
import 'package:dd_viewer/dd_viewer.dart';
import 'package:dd_viewer/model/filex.dart';
import 'package:flutter/material.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final pdfUrl = "http://host:port/wd/pdf.pdf";
final excUrl = "http://host:port/wd/excel.xls";
final docUrl = "http://host:port/wd/文档.docx";
final jpg = 'http://host:port/wd/3.jpg';
final png = 'http://host:port/wd/2.png';
final jpeg = 'http://host:port/wd/1.jpeg';
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('超级视图'),
),
body: GridView.count(
crossAxisCount: 2,
children: [
SuperView(file: FileX.netWork(url: docUrl)),
SuperView(file: FileX.netWork(url: excUrl)),
SuperView(file: FileX.netWork(url: pdfUrl)),
SuperView(file: FileX.netWork(url: jpg)),
SuperView(file: FileX.netWork(url: png)),
SuperView(file: FileX.netWork(url: jpeg)),
],
),
),
);
}
}
示例代码
import 'package:dd_viewer/dd_viewer.dart';
import 'package:dd_viewer/model/filex.dart';
import 'package:flutter/material.dart';
import 'package:path/path.dart' as path;
import 'doc.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final pdfUrl = "http://ip:port/wd/pdf.pdf";
final excUrl = "http://ip:port/wd/excel.xls";
final docUrl = "http://ip:port/wd/文档.docx";
final jpg = 'http://ip:port/wd/3.jpg';
final png = 'http://ip:port/wd/2.png';
final jpeg = 'http://ip:port/wd/1.jpeg';
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('超级视图'),
actions: [
Builder(
builder: (c) {
return FilledButton.tonal(
onPressed: () {
Navigator.push(c, MaterialPageRoute(builder: (_) => const DocView()));
},
child: const Text('doc页面测试'),
);
}
)
],
),
body: GridView.count(
crossAxisCount: 2,
children: [
SuperView(file: FileX.netWork(url: docUrl)),
FilledButton(
onPressed: () {
DdViewerApi().openXlsFile(FileX.netWork(url: 'http://ip:port/wd/excel.xls'));
},
child: const Text('打开xls'),
),
SuperView(file: FileX.netWork(url: pdfUrl)),
SuperView(file: FileX.netWork(url: jpg)),
SuperView(file: FileX.netWork(url: png)),
SuperView(file: FileX.netWork(url: jpeg)),
],
),
),
);
}
void isXlsFile() {
final fileType = getFileType('http://ip:port/wd/excel.xls');
if (fileType == SupportFile.xls) {
DdViewerApi().openXlsFile(FileX.netWork(url: 'http://ip:port/wd/excel.xls'));
}
}
SupportFile getFileType(String url) {
final ex = path.extension(url);
switch (ex) {
case '.xls':
return SupportFile.xls;
case '.pdf':
return SupportFile.pdf;
case '.docx':
return SupportFile.word;
case '.jpg':
return SupportFile.img;
case '.png':
return SupportFile.img;
case '.jpeg':
return SupportFile.img;
default:
return SupportFile.noSupport;
}
}
}
更多关于Flutter文档或内容查看插件dd_viewer的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter文档或内容查看插件dd_viewer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用dd_viewer
插件来查看文档或内容的示例代码。dd_viewer
插件可能不是官方广泛认可的插件名称,但假设它是一个自定义或第三方插件,用于在Flutter应用中查看文档或内容。以下示例代码展示了如何集成和使用一个假设的dd_viewer
插件。
1. 添加依赖
首先,在你的pubspec.yaml
文件中添加dd_viewer
插件的依赖。请注意,这里的插件名称是假设的,你需要替换为实际的插件名称。
dependencies:
flutter:
sdk: flutter
dd_viewer: ^x.y.z # 替换为实际的版本号
然后运行flutter pub get
来获取依赖。
2. 导入插件
在你的Dart文件中导入dd_viewer
插件。
import 'package:dd_viewer/dd_viewer.dart';
3. 使用插件
下面是一个简单的例子,展示如何在Flutter应用中使用dd_viewer
插件来查看一个文档文件(比如PDF)。
import 'package:flutter/material.dart';
import 'package:dd_viewer/dd_viewer.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'DD Viewer Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: DocumentViewerScreen(),
);
}
}
class DocumentViewerScreen extends StatefulWidget {
@override
_DocumentViewerScreenState createState() => _DocumentViewerScreenState();
}
class _DocumentViewerScreenState extends State<DocumentViewerScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Document Viewer'),
),
body: Center(
child: DDViewer.fromAsset(
'assets/sample.pdf', // 替换为你的文档文件路径
pageNumbers: true,
zoom: true,
autoSpacing: true,
nightMode: false,
),
),
);
}
}
4. 添加资产文件
确保你的文档文件(例如PDF)已经放置在assets
文件夹中,并在pubspec.yaml
文件中声明它:
flutter:
assets:
- assets/sample.pdf
5. 运行应用
现在,你可以运行你的Flutter应用,应该能够看到一个使用dd_viewer
插件显示的文档查看器。
注意事项
- 插件的实际API可能会有所不同,请参考插件的官方文档或源代码以获取准确的API使用方式。
- 如果
dd_viewer
插件不存在或不支持你需要的文档格式,你可能需要寻找其他插件或实现自定义的文档查看器。 - 确保文档文件的路径和格式正确,否则可能会导致加载失败。
希望这个示例代码能帮助你开始使用dd_viewer
插件来查看文档或内容。如果你有更具体的需求或遇到问题,请查阅插件的官方文档或寻求进一步的帮助。