|
@@ -5,25 +5,28 @@
|
|
|
// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
|
|
|
// This notice may not be removed from this file.
|
|
|
|
|
|
+import 'dart:io';
|
|
|
import 'dart:math';
|
|
|
|
|
|
import 'package:compdfkit_flutter/configuration/cpdf_configuration.dart';
|
|
|
+import 'package:compdfkit_flutter/configuration/cpdf_options.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 {
|
|
|
+class CPDFReaderWidgetControllerExample extends StatefulWidget {
|
|
|
final String documentPath;
|
|
|
|
|
|
- const CPDFReaderWidgetFunTestExample({super.key, required this.documentPath});
|
|
|
+ const CPDFReaderWidgetControllerExample({super.key, required this.documentPath});
|
|
|
|
|
|
@override
|
|
|
- State<CPDFReaderWidgetFunTestExample> createState() =>
|
|
|
- _CPDFReaderWidgetFunTestExampleState();
|
|
|
+ State<CPDFReaderWidgetControllerExample> createState() =>
|
|
|
+ _CPDFReaderWidgetControllerExampleState();
|
|
|
}
|
|
|
|
|
|
-class _CPDFReaderWidgetFunTestExampleState
|
|
|
- extends State<CPDFReaderWidgetFunTestExample> {
|
|
|
+class _CPDFReaderWidgetControllerExampleState
|
|
|
+ extends State<CPDFReaderWidgetControllerExample> {
|
|
|
+
|
|
|
CPDFReaderWidgetController? _controller;
|
|
|
|
|
|
bool canScale = true;
|
|
@@ -51,14 +54,16 @@ class _CPDFReaderWidgetFunTestExampleState
|
|
|
handleClick(value, _controller!);
|
|
|
}, itemBuilder: (context) {
|
|
|
return actions
|
|
|
- .map((e) => PopupMenuItem(child: Text(e), value: e))
|
|
|
+ .map((e) => PopupMenuItem(value: e, child: Text(e)))
|
|
|
.toList();
|
|
|
})
|
|
|
],
|
|
|
),
|
|
|
body: CPDFReaderWidget(
|
|
|
document: widget.documentPath,
|
|
|
- configuration: CPDFConfiguration(),
|
|
|
+ configuration: CPDFConfiguration(toolbarConfig: const CPDFToolbarConfig(
|
|
|
+ iosLeftBarAvailableActions: [CPDFToolbarAction.thumbnail]
|
|
|
+ )),
|
|
|
onCreated: (controller) {
|
|
|
setState(() {
|
|
|
_controller = controller;
|
|
@@ -72,77 +77,83 @@ class _CPDFReaderWidgetFunTestExampleState
|
|
|
debugPrint('ComPDFKit-Flutter: saveResult:$saveResult');
|
|
|
}
|
|
|
|
|
|
- void handleClick(String value, CPDFReaderWidgetController _controller) async {
|
|
|
+ void handleClick(String value, CPDFReaderWidgetController controller) async {
|
|
|
switch (value) {
|
|
|
case 'setScale':
|
|
|
- _controller.setScale(1.5);
|
|
|
+ controller.setScale(1.5);
|
|
|
break;
|
|
|
case 'getScale':
|
|
|
- double scaleValue = await _controller.getScale();
|
|
|
+ double scaleValue = await controller.getScale();
|
|
|
debugPrint('ComPDFKit:CPDFReaderWidget-getScale():$scaleValue');
|
|
|
break;
|
|
|
- case 'setReadBgColor':
|
|
|
- await _controller.setReadBackgroundColor(randomColor());
|
|
|
- break;
|
|
|
- case 'getReadBgColor':
|
|
|
- Color color = await _controller.getReadBackgroundColor();
|
|
|
- debugPrint('ComPDFKit:getReadBgColor:${color.toString()}');
|
|
|
+ case 'setCanScale':
|
|
|
+ canScale = !canScale;
|
|
|
+ await controller.setCanScale(canScale);
|
|
|
break;
|
|
|
case 'setFormHighlight':
|
|
|
- bool isFormFieldHighlight = await _controller.isFormFieldHighlight();
|
|
|
+ bool isFormFieldHighlight = await controller.isFormFieldHighlight();
|
|
|
debugPrint('ComPDFKit:isFormFieldHighlight:$isFormFieldHighlight');
|
|
|
- _controller.setFormFieldHighlight(!isFormFieldHighlight);
|
|
|
+ controller.setFormFieldHighlight(!isFormFieldHighlight);
|
|
|
break;
|
|
|
case 'setLinkHighlight':
|
|
|
- bool isLinkHighlight = await _controller.isLinkHighlight();
|
|
|
+ bool isLinkHighlight = await controller.isLinkHighlight();
|
|
|
debugPrint('ComPDFKit:isLinkHighlight:$isLinkHighlight');
|
|
|
- _controller.setLinkHighlight(!isLinkHighlight);
|
|
|
+ controller.setLinkHighlight(!isLinkHighlight);
|
|
|
break;
|
|
|
case 'setVerticalMode':
|
|
|
- bool isVerticalMode = await _controller.isVerticalMode();
|
|
|
+ bool isVerticalMode = await controller.isVerticalMode();
|
|
|
debugPrint('ComPDFKit:isVerticalMode:$isVerticalMode');
|
|
|
- _controller.setVerticalMode(!isVerticalMode);
|
|
|
+ controller.setVerticalMode(!isVerticalMode);
|
|
|
break;
|
|
|
- case 'setPageSpacing':
|
|
|
+ case 'setMargin':
|
|
|
final Random random = Random();
|
|
|
int value = random.nextInt(50);
|
|
|
- debugPrint('ComPDFKit:setPageSpacing:$value');
|
|
|
- _controller.setPageSpacing(
|
|
|
- left: 10,
|
|
|
- top: 10,
|
|
|
- right: 10,
|
|
|
- bottom : 10
|
|
|
- );
|
|
|
+ debugPrint('ComPDFKit:setMargin:$value');
|
|
|
+ controller.setMargins(const CPDFEdgeInsets.symmetric(horizontal: 100, vertical: 10));
|
|
|
break;
|
|
|
case 'setContinueMode':
|
|
|
- bool isContinueMode = await _controller.isContinueMode();
|
|
|
+ bool isContinueMode = await controller.isContinueMode();
|
|
|
debugPrint('ComPDFKit:isContinueMode:$isContinueMode');
|
|
|
- _controller.setContinueMode(!isContinueMode);
|
|
|
+ controller.setContinueMode(!isContinueMode);
|
|
|
break;
|
|
|
case 'setDoublePageMode':
|
|
|
- bool isDoublePageMode = await _controller.isDoublePageMode();
|
|
|
+ bool isDoublePageMode = await controller.isDoublePageMode();
|
|
|
debugPrint('ComPDFKit:isDoublePageMode:$isDoublePageMode');
|
|
|
- _controller.setDoublePageMode(!isDoublePageMode);
|
|
|
+ controller.setDoublePageMode(!isDoublePageMode);
|
|
|
break;
|
|
|
case 'setCropMode':
|
|
|
- bool isCropMode = await _controller.isCropMode();
|
|
|
+ bool isCropMode = await controller.isCropMode();
|
|
|
debugPrint('ComPDFKit:isCropMode:$isCropMode');
|
|
|
- _controller.setCropMode(!isCropMode);
|
|
|
+ controller.setCropMode(!isCropMode);
|
|
|
break;
|
|
|
case 'setDisplayPageIndex':
|
|
|
- int nextPageIndex = await _controller.getCurrentPageIndex() + 1;
|
|
|
- _controller.setDisplayPageIndex(nextPageIndex, animated: false);
|
|
|
+ int nextPageIndex = await controller.getCurrentPageIndex() + 1;
|
|
|
+ controller.setDisplayPageIndex(nextPageIndex, animated: false);
|
|
|
break;
|
|
|
case 'getCurrentPageIndex':
|
|
|
- debugPrint(
|
|
|
- 'ComPDFKit:getCurrentPageIndex:${await _controller.getCurrentPageIndex()}');
|
|
|
+ debugPrint('ComPDFKit:getCurrentPageIndex:${await controller.getCurrentPageIndex()}');
|
|
|
break;
|
|
|
case 'setCoverPageMode':
|
|
|
- bool isCoverPageMode = await _controller.isCoverPageMode();
|
|
|
+ bool isCoverPageMode = await controller.isCoverPageMode();
|
|
|
debugPrint('ComPDFKit:isCoverPageMode:$isCoverPageMode');
|
|
|
- _controller.setCoverPageMode(!isCoverPageMode);
|
|
|
+ controller.setCoverPageMode(!isCoverPageMode);
|
|
|
+ break;
|
|
|
+ case 'pageSameWidth':
|
|
|
+ pageSameWidth = !pageSameWidth;
|
|
|
+ await controller.setPageSameWidth(pageSameWidth);
|
|
|
+ break;
|
|
|
+ case 'isPageInScreen':
|
|
|
+ bool isPageInScreen = await controller.isPageInScreen(0);
|
|
|
+ debugPrint('ComPDFKit:first page is in screen:$isPageInScreen');
|
|
|
+ break;
|
|
|
+ case 'setFixedScroll':
|
|
|
+ isFixedScroll = !isFixedScroll;
|
|
|
+ await controller.setFixedScroll(isFixedScroll);
|
|
|
+ break;
|
|
|
+ case 'isChanged':
|
|
|
+ bool hasChange = await controller.hasChange();
|
|
|
+ debugPrint('ComPDFKit:hasChange:$hasChange');
|
|
|
break;
|
|
|
- default:break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -150,18 +161,23 @@ class _CPDFReaderWidgetFunTestExampleState
|
|
|
var actions = [
|
|
|
'setScale',
|
|
|
'getScale',
|
|
|
- 'setReadBgColor',
|
|
|
- 'getReadBgColor',
|
|
|
+ if(Platform.isAndroid) ...[
|
|
|
+ 'setCanScale',
|
|
|
+ 'pageSameWidth',
|
|
|
+ 'isPageInScreen',
|
|
|
+ 'setFixedScroll'
|
|
|
+ ],
|
|
|
'setFormHighlight',
|
|
|
'setLinkHighlight',
|
|
|
'setVerticalMode',
|
|
|
- 'setPageSpacing',
|
|
|
+ 'setMargin',
|
|
|
'setContinueMode',
|
|
|
'setDoublePageMode',
|
|
|
'setCropMode',
|
|
|
'setDisplayPageIndex',
|
|
|
'getCurrentPageIndex',
|
|
|
- 'setCoverPageMode'
|
|
|
+ 'setCoverPageMode',
|
|
|
+ 'isChanged'
|
|
|
];
|
|
|
|
|
|
Color randomColor() {
|