반응형
Flutter 앱에서 TXT, PDF, DOCX 등 다양한 파일을 손쉽게 열람할 수 있는 방법을 찾고 계신가요? 오늘은 power_file_viewer_v2 패키지를 활용해 파일 뷰어를 만드는 방법을 단계별로 소개합니다.
1. 패키지 설치
먼저 pubspec.yaml 파일에 power_file_viewer_v2를 추가합니다.
dependencies:
flutter:
sdk: flutter
power_file_viewer_v2: ^1.0.5 # 최신 버전 확인 필요
터미널에서 다음 명령어로 패키지를 설치합니다.
flutter pub get
2. 기본 사용법
PowerFileViewer 위젯을 사용하면 간단하게 파일을 열 수 있습니다.
import 'package:flutter/material.dart';
import 'package:power_file_viewer_v2/power_file_viewer_v2.dart';
class FileViewerPage extends StatelessWidget {
final String filePath;
FileViewerPage({required this.filePath});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("파일 뷰어")),
body: PowerFileViewer(
file: File(filePath), // 로컬 파일 경로
canShare: true, // 공유 기능
canPrint: true, // 인쇄 기능
),
);
}
}
- file: 로컬에 저장된 파일(File 객체) 또는 URL을 통해 가져올 수 있습니다.
- canShare: 파일 공유 가능 여부
- canPrint: 파일 인쇄 가능 여부
3. 파일 선택 후 뷰어 연결
보통은 사용자가 파일을 선택하고 뷰어로 열도록 만들고 싶죠. file_picker 패키지와 함께 사용하면 쉽게 구현할 수 있습니다.
import 'package:file_picker/file_picker.dart';
Future<void> pickAndViewFile(BuildContext context) async {
FilePickerResult? result = await FilePicker.platform.pickFiles(
type: FileType.any,
);
if (result != null) {
String filePath = result.files.single.path!;
Navigator.push(
context,
MaterialPageRoute(builder: (context) => FileViewerPage(filePath: filePath)),
);
}
}
4. 지원 파일 형식
power_file_viewer_v2는 다양한 형식 지원:
- DOC, DOCX
- TXT
- XLS, XLSX
- PPT, PPTX
- 이미지 파일(JPG, PNG 등)
주의: 일부 파일은 플랫폼(Android/iOS) 환경에 따라 추가 설정이 필요할 수 있습니다.
5. 고급 옵션
PowerFileViewer는 다음과 같은 추가 옵션도 제공합니다.
- themeMode: 다크/라이트 모드 적용
- initialPage: PDF 등의 초기 페이지 지정
- autoZoom: PDF 확대/축소 자동 적용
PowerFileViewer(
file: File(filePath),
themeMode: ThemeMode.dark,
initialPage: 2,
autoZoom: true,
)
6. 결론
power_file_viewer_v2는 Flutter에서 다양한 파일을 손쉽게 열람할 수 있게 해주는 강력한 패키지입니다.
간단한 코드만으로도 파일 뷰어를 구현할 수 있으며, 필요하다면 공유, 인쇄, 테마 등 다양한 기능을 추가할 수 있습니다.
반응형
'Flutter & Dart' 카테고리의 다른 글
[Flutter] 플러터 무한 스크롤 구현하기 (0) | 2025.08.26 |
---|---|
[Flutter] Flutter와 Dart에서 유용한 함수 정리 (0) | 2025.07.08 |
[Flutter] 이미지를 바이너리로 변환, 바이너리를 이미지로 변환 (0) | 2024.12.11 |
[Flutter] Flutter 에서 MS-SQL 사용자정의테이블 저장하기 (0) | 2024.11.26 |
[Flutter]플러터 DataTable 응용하기 RxList를 DataTable에 넣기 (0) | 2024.11.26 |