Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
dart_pdf
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
David PHAM-VAN
2024-01-27 12:21:52 -0400
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
2d2b21a32c1d342dba3247ae50bdd2ee3b802692
2d2b21a3
2 parents
ea5ecca6
403dfcd0
Merge branch 'MacDeveloper1-feature/zoom'
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
1 deletions
printing/CHANGELOG.md
printing/lib/src/preview/custom.dart
printing/lib/src/preview/pdf_preview.dart
printing/CHANGELOG.md
View file @
2d2b21a
...
...
@@ -4,6 +4,7 @@
-
Refactor html imports
-
Implement PdfActionBarTheme for actions bar and add method scrollToPage
[
Aleksei
]
-
Update cursors in zoom mode for web
[
Aleksei
]
## 5.11.1
...
...
printing/lib/src/preview/custom.dart
View file @
2d2b21a
...
...
@@ -16,6 +16,7 @@
import
'dart:async'
;
import
'package:flutter/foundation.dart'
;
import
'package:flutter/material.dart'
;
import
'package:pdf/pdf.dart'
;
...
...
@@ -51,6 +52,7 @@ class PdfPreviewCustom extends StatefulWidget {
this
.
shrinkWrap
=
false
,
this
.
pagesBuilder
,
this
.
enableScrollToPage
=
false
,
this
.
onZoomChanged
,
})
:
super
(
key:
key
);
/// Pdf paper page format
...
...
@@ -106,6 +108,9 @@ class PdfPreviewCustom extends StatefulWidget {
/// Whether scroll to page functionality enabled.
final
bool
enableScrollToPage
;
/// The zoom mode has changed
final
ValueChanged
<
bool
>?
onZoomChanged
;
@override
PdfPreviewCustomState
createState
()
=>
PdfPreviewCustomState
();
}
...
...
@@ -130,6 +135,8 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom>
Timer
?
previewUpdate
;
MouseCursor
_mouseCursor
=
MouseCursor
.
defer
;
static
const
_errorMessage
=
'Unable to display the document'
;
@override
...
...
@@ -137,6 +144,7 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom>
@override
void
dispose
()
{
transformationController
.
dispose
();
previewUpdate
?.
cancel
();
super
.
dispose
();
}
...
...
@@ -155,6 +163,7 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom>
preview
=
null
;
updatePosition
=
null
;
raster
();
_zoomChanged
();
}
super
.
didUpdateWidget
(
oldWidget
);
}
...
...
@@ -235,7 +244,9 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom>
updatePosition
=
scrollController
.
position
.
pixels
;
preview
=
index
;
transformationController
.
value
.
setIdentity
();
_updateCursor
(
SystemMouseCursors
.
grab
);
});
_zoomChanged
();
},
child:
PdfPreviewPage
(
key:
key
,
...
...
@@ -271,15 +282,23 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom>
}
Widget
_zoomPreview
()
{
return
GestureDetector
(
final
zoomPreview
=
GestureDetector
(
onDoubleTap:
()
{
setState
(()
{
preview
=
null
;
_updateCursor
(
MouseCursor
.
defer
);
});
_zoomChanged
();
},
onLongPressCancel:
kIsWeb
?
()
=>
_updateCursor
(
SystemMouseCursors
.
grab
)
:
null
,
onLongPressDown:
kIsWeb
?
(
_
)
=>
_updateCursor
(
SystemMouseCursors
.
grabbing
)
:
null
,
child:
InteractiveViewer
(
transformationController:
transformationController
,
maxScale:
5
,
onInteractionEnd:
kIsWeb
?
(
_
)
=>
_updateCursor
(
SystemMouseCursors
.
grab
)
:
null
,
child:
Center
(
child:
PdfPreviewPage
(
pageData:
pages
[
preview
!],
...
...
@@ -289,6 +308,20 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom>
),
),
);
return
MouseRegion
(
cursor:
_mouseCursor
,
child:
zoomPreview
,
);
}
void
_zoomChanged
()
=>
widget
.
onZoomChanged
?.
call
(
preview
!=
null
);
void
_updateCursor
(
MouseCursor
mouseCursor
)
{
if
(
mouseCursor
!=
_mouseCursor
)
{
setState
(()
{
_mouseCursor
=
mouseCursor
;
});
}
}
@override
...
...
printing/lib/src/preview/pdf_preview.dart
View file @
2d2b21a
...
...
@@ -65,6 +65,7 @@ class PdfPreview extends StatefulWidget {
this
.
dpi
,
this
.
actionBarTheme
=
const
PdfActionBarTheme
(),
this
.
enableScrollToPage
=
false
,
this
.
onZoomChanged
,
})
:
_pagesBuilder
=
null
,
super
(
key:
key
);
...
...
@@ -125,6 +126,7 @@ class PdfPreview extends StatefulWidget {
this
.
actionBarTheme
=
const
PdfActionBarTheme
(),
required
CustomPdfPagesBuilder
pagesBuilder
,
this
.
enableScrollToPage
=
false
,
this
.
onZoomChanged
,
})
:
_pagesBuilder
=
pagesBuilder
,
super
(
key:
key
);
...
...
@@ -238,6 +240,9 @@ class PdfPreview extends StatefulWidget {
/// Whether scroll to page functionality enabled.
final
bool
enableScrollToPage
;
/// The zoom mode has changed
final
ValueChanged
<
bool
>?
onZoomChanged
;
@override
PdfPreviewState
createState
()
=>
PdfPreviewState
();
}
...
...
@@ -411,6 +416,7 @@ class PdfPreviewState extends State<PdfPreview> {
pagesBuilder:
widget
.
_pagesBuilder
,
dpi:
widget
.
dpi
,
enableScrollToPage:
widget
.
enableScrollToPage
,
onZoomChanged:
widget
.
onZoomChanged
,
);
}),
),
...
...
Please
register
or
login
to post a comment