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
2020-12-13 09:37:30 -0400
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
9bec389e9aababe2de65752bfd7c14e422d4ade3
9bec389e
1 parent
dc8da34e
Fix raster pages on Android and Web
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
18 additions
and
6 deletions
printing/CHANGELOG.md
printing/android/src/main/java/net/nfet/flutter/printing/PrintingHandler.java
printing/android/src/main/java/net/nfet/flutter/printing/PrintingJob.java
printing/lib/src/pdf_preview.dart
printing/lib/src/printing_web.dart
printing/CHANGELOG.md
View file @
9bec389
...
...
@@ -3,6 +3,7 @@
## 3.7.2
-
Fix Printing on WEB
-
Fix raster pages on Android and Web
## 3.7.1
...
...
printing/android/src/main/java/net/nfet/flutter/printing/PrintingHandler.java
View file @
9bec389
...
...
@@ -7,6 +7,7 @@ import android.print.PrintAttributes;
import
androidx.annotation.NonNull
;
import
androidx.annotation.RequiresApi
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
io.flutter.plugin.common.MethodCall
;
...
...
@@ -89,7 +90,7 @@ public class PrintingHandler implements MethodChannel.MethodCallHandler {
}
case
"rasterPdf"
:
{
final
byte
[]
document
=
call
.
argument
(
"doc"
);
final
int
[]
pages
=
call
.
argument
(
"pages"
);
final
ArrayList
<
Integer
>
pages
=
call
.
argument
(
"pages"
);
Double
scale
=
call
.
argument
(
"scale"
);
final
PrintingJob
printJob
=
new
PrintingJob
(
activity
,
this
,
(
int
)
call
.
argument
(
"job"
));
...
...
printing/android/src/main/java/net/nfet/flutter/printing/PrintingJob.java
View file @
9bec389
...
...
@@ -53,6 +53,7 @@ import java.io.FileOutputStream;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.nio.ByteBuffer
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -302,7 +303,7 @@ public class PrintingJob extends PrintDocumentAdapter {
callback
.
onLayoutFinished
(
info
,
true
);
}
void
rasterPdf
(
final
byte
[]
data
,
final
int
[]
pages
,
final
Double
scale
)
{
void
rasterPdf
(
final
byte
[]
data
,
final
ArrayList
<
Integer
>
pages
,
final
Double
scale
)
{
if
(
android
.
os
.
Build
.
VERSION
.
SDK_INT
<
android
.
os
.
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
Log
.
e
(
"PDF"
,
"PDF Raster available since Android 5.0 Lollipop (API 21)"
);
printing
.
onPageRasterEnd
(
this
);
...
...
@@ -327,9 +328,9 @@ public class PrintingJob extends PrintDocumentAdapter {
Log
.
e
(
"PDF"
,
"Unable to delete temporary file"
);
}
final
int
pageCount
=
pages
!=
null
?
pages
.
length
:
renderer
.
getPageCount
();
final
int
pageCount
=
pages
!=
null
?
pages
.
size
()
:
renderer
.
getPageCount
();
for
(
int
i
=
0
;
i
<
pageCount
;
i
++)
{
PdfRenderer
.
Page
page
=
renderer
.
openPage
(
pages
==
null
?
i
:
pages
[
i
]
);
PdfRenderer
.
Page
page
=
renderer
.
openPage
(
pages
==
null
?
i
:
pages
.
get
(
i
)
);
final
int
width
=
Double
.
valueOf
(
page
.
getWidth
()
*
scale
).
intValue
();
final
int
height
=
Double
.
valueOf
(
page
.
getHeight
()
*
scale
).
intValue
();
...
...
printing/lib/src/pdf_preview.dart
View file @
9bec389
...
...
@@ -30,6 +30,7 @@ class PdfPreview extends StatefulWidget {
this
.
pdfPreviewPageDecoration
,
this
.
pdfFileName
,
this
.
useActions
=
true
,
this
.
pages
,
})
:
super
(
key:
key
);
/// Called when a pdf document is needed
...
...
@@ -77,6 +78,9 @@ class PdfPreview extends StatefulWidget {
/// Name of the PDF when sharing. It must include the extension.
final
String
pdfFileName
;
/// Pages to display. Default will display all the pages.
final
List
<
int
>
pages
;
@override
_PdfPreviewState
createState
()
=>
_PdfPreviewState
();
}
...
...
@@ -123,7 +127,11 @@ class _PdfPreviewState extends State<PdfPreview> {
}
var
pageNum
=
0
;
await
for
(
final
PdfRaster
page
in
Printing
.
raster
(
_doc
,
dpi:
dpi
))
{
await
for
(
final
PdfRaster
page
in
Printing
.
raster
(
_doc
,
dpi:
dpi
,
pages:
widget
.
pages
,
))
{
if
(!
mounted
)
{
return
;
}
...
...
printing/lib/src/printing_web.dart
View file @
9bec389
...
...
@@ -194,8 +194,9 @@ class PrintingPlugin extends PrintingPlatform {
final
html
.
CanvasElement
canvas
=
js
.
context
[
'document'
].
createElement
(
'canvas'
);
final
html
.
CanvasRenderingContext2D
context
=
canvas
.
getContext
(
'2d'
);
final
_pages
=
pages
??
Iterable
<
int
>.
generate
(
numPages
,
(
index
)
=>
index
);
for
(
var
i
=
0
;
i
<
numPages
;
i
++
)
{
for
(
final
i
in
_pages
)
{
final
page
=
await
promiseToFuture
<
PdfJsPage
>(
d
.
getPage
(
i
+
1
));
final
viewport
=
page
.
getViewport
(
Settings
()..
scale
=
1.5
);
...
...
Please
register
or
login
to post a comment