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
Aleksei
2024-01-22 09:44:46 +0100
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
David PHAM-VAN
2024-01-27 12:11:28 -0400
Commit
24c7f1ce7b5b9949416700c806d1ba1b7a6fcf8e
24c7f1ce
1 parent
750fd0fb
Add `enableScrollToPage`
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
63 additions
and
24 deletions
printing/lib/src/preview/custom.dart
printing/lib/src/preview/pdf_preview.dart
printing/lib/src/preview/custom.dart
View file @
24c7f1c
...
...
@@ -50,6 +50,7 @@ class PdfPreviewCustom extends StatefulWidget {
this
.
scrollPhysics
,
this
.
shrinkWrap
=
false
,
this
.
pagesBuilder
,
this
.
enableScrollToPage
=
false
,
})
:
super
(
key:
key
);
/// Pdf paper page format
...
...
@@ -102,6 +103,9 @@ class PdfPreviewCustom extends StatefulWidget {
/// their own pages.
final
CustomPdfPagesBuilder
?
pagesBuilder
;
/// Whether scroll to page functionality enabled.
final
bool
enableScrollToPage
;
@override
PdfPreviewCustomState
createState
()
=>
PdfPreviewCustomState
();
}
...
...
@@ -110,7 +114,7 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom>
with
PdfPreviewRaster
{
final
listView
=
GlobalKey
();
final
_pageGlobalKeys
=
List
.
generate
(
100
,
(
index
)
=>
GlobalKey
())
;
late
List
<
GlobalKey
>
_pageGlobalKeys
;
bool
infoLoaded
=
false
;
...
...
@@ -217,32 +221,62 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom>
);
}
_pageGlobalKeys
=
List
.
generate
(
pages
.
length
,
(
index
)
=>
GlobalKey
());
if
(
widget
.
pagesBuilder
!=
null
)
{
return
widget
.
pagesBuilder
!(
context
,
pages
);
}
return
ListView
.
builder
(
controller:
scrollController
,
shrinkWrap:
widget
.
shrinkWrap
,
physics:
widget
.
scrollPhysics
,
padding:
widget
.
padding
,
itemCount:
pages
.
length
,
itemBuilder:
(
BuildContext
context
,
int
index
)
=>
GestureDetector
(
onDoubleTap:
()
{
setState
(()
{
updatePosition
=
scrollController
.
position
.
pixels
;
preview
=
index
;
transformationController
.
value
.
setIdentity
();
});
},
child:
PdfPreviewPage
(
key:
getPageKey
(
index
),
pageData:
pages
[
index
],
pdfPreviewPageDecoration:
widget
.
pdfPreviewPageDecoration
,
pageMargin:
widget
.
previewPageMargin
,
),
),
);
return
widget
.
enableScrollToPage
?
Scrollbar
(
controller:
scrollController
,
child:
SingleChildScrollView
(
controller:
scrollController
,
physics:
widget
.
scrollPhysics
,
child:
Column
(
children:
List
.
generate
(
pages
.
length
,
(
index
)
=>
GestureDetector
(
onDoubleTap:
()
{
setState
(()
{
updatePosition
=
scrollController
.
position
.
pixels
;
preview
=
index
;
transformationController
.
value
.
setIdentity
();
});
},
child:
PdfPreviewPage
(
key:
getPageKey
(
index
),
pageData:
pages
[
index
],
pdfPreviewPageDecoration:
widget
.
pdfPreviewPageDecoration
,
pageMargin:
widget
.
previewPageMargin
,
),
),
),
),
),
)
:
ListView
.
builder
(
controller:
scrollController
,
shrinkWrap:
widget
.
shrinkWrap
,
physics:
widget
.
scrollPhysics
,
padding:
widget
.
padding
,
itemCount:
pages
.
length
,
itemBuilder:
(
BuildContext
context
,
int
index
)
=>
GestureDetector
(
onDoubleTap:
()
{
setState
(()
{
updatePosition
=
scrollController
.
position
.
pixels
;
preview
=
index
;
transformationController
.
value
.
setIdentity
();
});
},
child:
PdfPreviewPage
(
key:
getPageKey
(
index
),
pageData:
pages
[
index
],
pdfPreviewPageDecoration:
widget
.
pdfPreviewPageDecoration
,
pageMargin:
widget
.
previewPageMargin
,
),
),
);
}
Widget
_zoomPreview
()
{
...
...
printing/lib/src/preview/pdf_preview.dart
View file @
24c7f1c
...
...
@@ -64,6 +64,7 @@ class PdfPreview extends StatefulWidget {
this
.
onPageFormatChanged
,
this
.
dpi
,
this
.
actionBarTheme
=
const
PdfActionBarTheme
(),
this
.
enableScrollToPage
=
false
,
})
:
_pagesBuilder
=
null
,
super
(
key:
key
);
...
...
@@ -123,6 +124,7 @@ class PdfPreview extends StatefulWidget {
this
.
dpi
,
this
.
actionBarTheme
=
const
PdfActionBarTheme
(),
required
CustomPdfPagesBuilder
pagesBuilder
,
this
.
enableScrollToPage
=
false
,
})
:
_pagesBuilder
=
pagesBuilder
,
super
(
key:
key
);
...
...
@@ -233,6 +235,9 @@ class PdfPreview extends StatefulWidget {
/// their own pages.
final
CustomPdfPagesBuilder
?
_pagesBuilder
;
/// Whether scroll to page functionality enabled.
final
bool
enableScrollToPage
;
@override
PdfPreviewState
createState
()
=>
PdfPreviewState
();
}
...
...
@@ -302,7 +307,6 @@ class PdfPreviewState extends State<PdfPreview> {
initialPageFormat:
previewData
.
pageFormat
,
onComputeActualPageFormat:
computeActualPageFormat
,
);
setState
(()
{});
}
super
.
didUpdateWidget
(
oldWidget
);
}
...
...
@@ -406,6 +410,7 @@ class PdfPreviewState extends State<PdfPreview> {
shouldRepaint:
widget
.
shouldRepaint
,
pagesBuilder:
widget
.
_pagesBuilder
,
dpi:
widget
.
dpi
,
enableScrollToPage:
widget
.
enableScrollToPage
,
);
}),
),
...
...
Please
register
or
login
to post a comment