123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- // Copyright © 2014-2024 PDF Technologies, Inc. All Rights Reserved.
- //
- // THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
- // AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
- // UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
- // This notice may not be removed from this file.
- import 'dart:math';
- import 'package:compdfkit_flutter/configuration/cpdf_configuration.dart';
- import 'package:compdfkit_flutter/widgets/cpdf_reader_widget.dart';
- import 'package:compdfkit_flutter/widgets/cpdf_reader_widget_controller.dart';
- import 'package:flutter/material.dart';
- class CPDFReaderWidgetFunTestExample extends StatefulWidget {
- final String documentPath;
- const CPDFReaderWidgetFunTestExample({super.key, required this.documentPath});
- @override
- State<CPDFReaderWidgetFunTestExample> createState() =>
- _CPDFReaderWidgetFunTestExampleState();
- }
- class _CPDFReaderWidgetFunTestExampleState
- extends State<CPDFReaderWidgetFunTestExample> {
- CPDFReaderWidgetController? _controller;
- bool canScale = true;
- bool pageSameWidth = true;
- bool isFixedScroll = false;
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- resizeToAvoidBottomInset: false,
- appBar: AppBar(
- title: const Text('CPDFReaderWidget Example'),
- leading: IconButton(
- onPressed: () {
- _save();
- Navigator.pop(context);
- },
- icon: const Icon(Icons.arrow_back)),
- actions: null == _controller
- ? []
- : [
- PopupMenuButton(onSelected: (value) {
- handleClick(value, _controller!);
- }, itemBuilder: (context) {
- return actions
- .map((e) => PopupMenuItem(child: Text(e), value: e))
- .toList();
- })
- ],
- ),
- body: CPDFReaderWidget(
- document: widget.documentPath,
- configuration: CPDFConfiguration(),
- onCreated: (controller) {
- setState(() {
- _controller = controller;
- });
- },
- ));
- }
- void _save() async {
- bool saveResult = await _controller!.save();
- debugPrint('ComPDFKit-Flutter: saveResult:$saveResult');
- }
- void handleClick(String value, CPDFReaderWidgetController _controller) async {
- switch (value) {
- case 'setScale':
- _controller.setScale(1.5);
- break;
- case 'getScale':
- double scaleValue = await _controller.getScale();
- debugPrint('ComPDFKit:CPDFReaderWidget-getScale():$scaleValue');
- break;
- case 'setCanScale':
- canScale = !canScale;
- await _controller.setCanScale(canScale);
- break;
- case 'setReadBgColor':
- await _controller.setReadBackgroundColor(Colors.white);
- break;
- case 'getReadBgColor':
- Color color = await _controller.getReadBackgroundColor();
- debugPrint('ComPDFKit:getReadBgColor:${color.toString()}');
- break;
- case 'setFormHighlight':
- bool isFormFieldHighlight = await _controller.isFormFieldHighlight();
- debugPrint('ComPDFKit:isFormFieldHighlight:$isFormFieldHighlight');
- _controller.setFormFieldHighlight(!isFormFieldHighlight);
- break;
- case 'setLinkHighlight':
- bool isLinkHighlight = await _controller.isLinkHighlight();
- debugPrint('ComPDFKit:isLinkHighlight:$isLinkHighlight');
- _controller.setLinkHighlight(!isLinkHighlight);
- break;
- case 'setVerticalMode':
- bool isVerticalMode = await _controller.isVerticalMode();
- debugPrint('ComPDFKit:isVerticalMode:$isVerticalMode');
- _controller.setVerticalMode(!isVerticalMode);
- break;
- case 'setPageSpacing':
- final Random random = Random();
- int value = random.nextInt(50);
- debugPrint('ComPDFKit:setPageSpacing:$value');
- _controller.setPageSpacing(value);
- break;
- case 'setContinueMode':
- bool isContinueMode = await _controller.isContinueMode();
- debugPrint('ComPDFKit:isContinueMode:$isContinueMode');
- _controller.setContinueMode(!isContinueMode);
- break;
- case 'setDoublePageMode':
- bool isDoublePageMode = await _controller.isDoublePageMode();
- debugPrint('ComPDFKit:isDoublePageMode:$isDoublePageMode');
- _controller.setDoublePageMode(!isDoublePageMode);
- break;
- case 'setCropMode':
- bool isCropMode = await _controller.isCropMode();
- debugPrint('ComPDFKit:isCropMode:$isCropMode');
- _controller.setCropMode(!isCropMode);
- break;
- case 'setDisplayPageIndex':
- int nextPageIndex = await _controller.getCurrentPageIndex() + 1;
- _controller.setDisplayPageIndex(nextPageIndex);
- break;
- case 'getCurrentPageIndex':
- debugPrint(
- 'ComPDFKit:getCurrentPageIndex:${await _controller.getCurrentPageIndex()}');
- break;
- case 'setPageSameWidth':
- pageSameWidth = !pageSameWidth;
- _controller.setPageSameWidth(pageSameWidth);
- break;
- case 'isPageInScreen':
- bool isPageInScreen = await _controller.isPageInScreen(0);
- debugPrint('ComPDFKit:first page is in screen:$isPageInScreen');
- break;
- case 'setCoverPageMode':
- bool isCoverPageMode = await _controller.isCoverPageMode();
- debugPrint('ComPDFKit:isCoverPageMode:$isCoverPageMode');
- _controller.setCoverPageMode(!isCoverPageMode);
- break;
- case 'setFixedScroll':
- isFixedScroll = !isFixedScroll;
- await _controller.setFixedScroll(isFixedScroll);
- break;
- case 'getPageSize':
- int currentPageIndex = await _controller.getCurrentPageIndex();
- Size pageSizeNoZoom = await _controller.getPageSize(currentPageIndex);
- Size pageSizeZoom = await _controller.getPageSize(currentPageIndex, noZoom: false);
- debugPrint('ComPDFKit:pageSizeNoZoom:$pageSizeNoZoom');
- debugPrint('ComPDFKit:pageSize:$pageSizeZoom');
- break;
- }
- }
- }
- var actions = [
- 'setScale',
- 'getScale',
- 'setCanScale',
- 'setReadBgColor',
- 'getReadBgColor',
- 'setFormHighlight',
- 'setLinkHighlight',
- 'setVerticalMode',
- 'setPageSpacing',
- 'setContinueMode',
- 'setDoublePageMode',
- 'setCropMode',
- 'setDisplayPageIndex',
- 'getCurrentPageIndex',
- 'setPageSameWidth',
- 'isPageInScreen',
- 'setFixedScroll',
- 'setCoverPageMode',
- 'getPageSize'
- ];
- Color randomColor() {
- final Random random = Random();
- return Color.fromARGB(
- 255, // Alpha value (fully opaque)
- random.nextInt(256), // Red value
- random.nextInt(256), // Green value
- random.nextInt(256), // Blue value
- );
- }
|