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
2019-02-03 07:59:51 -0500
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
4883c6e11d605cb09580531fbf316d2d072a9adf
4883c6e1
1 parent
e4307234
Move printing library files
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
121 additions
and
38 deletions
printing/lib/printing.dart
printing/lib/src/asset_utils.dart
printing/lib/src/printing.dart
printing/lib/printing.dart
View file @
4883c6e
...
...
@@ -14,48 +14,15 @@
* limitations under the License.
*/
library
printing
;
import
'dart:async'
;
import
'dart:typed_data'
;
import
'dart:ui'
;
import
'dart:ui'
as
ui
;
import
'package:flutter/services.dart'
;
import
'package:flutter/widgets.dart'
;
import
'package:pdf/pdf.dart'
;
class
Printing
{
static
const
MethodChannel
_channel
=
MethodChannel
(
'printing'
);
static
Future
<
Null
>
printPdf
({
PdfDocument
document
,
List
<
int
>
bytes
})
async
{
assert
(
document
!=
null
||
bytes
!=
null
);
assert
(!(
document
==
null
&&
bytes
==
null
));
if
(
document
!=
null
)
bytes
=
document
.
save
();
final
Map
<
String
,
dynamic
>
params
=
<
String
,
dynamic
>{
'doc'
:
Uint8List
.
fromList
(
bytes
),
};
await
_channel
.
invokeMethod
(
'printPdf'
,
params
);
}
static
Future
<
Null
>
sharePdf
(
{
PdfDocument
document
,
List
<
int
>
bytes
,
Rect
bounds
})
async
{
assert
(
document
!=
null
||
bytes
!=
null
);
assert
(!(
document
==
null
&&
bytes
==
null
));
if
(
document
!=
null
)
bytes
=
document
.
save
();
if
(
bounds
==
null
)
{
bounds
=
Rect
.
fromCircle
(
center:
Offset
.
zero
,
radius:
10.0
);
}
final
Map
<
String
,
dynamic
>
params
=
<
String
,
dynamic
>{
'doc'
:
Uint8List
.
fromList
(
bytes
),
'x'
:
bounds
.
left
,
'y'
:
bounds
.
top
,
'w'
:
bounds
.
width
,
'h'
:
bounds
.
height
,
};
await
_channel
.
invokeMethod
(
'sharePdf'
,
params
);
}
}
part
'src/asset_utils.dart'
;
part
'src/printing.dart'
;
...
...
printing/lib/src/asset_utils.dart
0 → 100644
View file @
4883c6e
/*
* Copyright (C) 2017, David PHAM-VAN <dev.nfet.net@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
part of
printing
;
Future
<
PdfImage
>
pdfImageFromImage
(
{
@required
PdfDocument
pdf
,
@required
ui
.
Image
image
})
async
{
var
bytes
=
await
image
.
toByteData
(
format:
ui
.
ImageByteFormat
.
rawRgba
);
return
PdfImage
(
pdf
,
image:
bytes
.
buffer
.
asUint8List
(),
width:
image
.
width
,
height:
image
.
height
);
}
Future
<
PdfImage
>
pdfImageFromImageProvider
(
{
@required
PdfDocument
pdf
,
@required
ImageProvider
image
,
ImageConfiguration
configuration
,
ImageErrorListener
onError
})
async
{
final
Completer
<
PdfImage
>
completer
=
Completer
<
PdfImage
>();
final
ImageStream
stream
=
image
.
resolve
(
configuration
??
ImageConfiguration
.
empty
);
void
listener
(
ImageInfo
image
,
bool
sync
)
async
{
final
result
=
await
pdfImageFromImage
(
pdf:
pdf
,
image:
image
.
image
);
if
(!
completer
.
isCompleted
)
completer
.
complete
(
result
);
stream
.
removeListener
(
listener
);
}
void
errorListener
(
dynamic
exception
,
StackTrace
stackTrace
)
{
if
(!
completer
.
isCompleted
)
completer
.
complete
(
null
);
if
(
onError
!=
null
)
{
onError
(
exception
,
stackTrace
);
}
else
{
FlutterError
.
reportError
(
FlutterErrorDetails
(
context:
'image failed to load'
,
library
:
'printing'
,
exception:
exception
,
stack:
stackTrace
,
silent:
true
,
));
}
}
stream
.
addListener
(
listener
,
onError:
errorListener
);
return
completer
.
future
;
}
...
...
printing/lib/src/printing.dart
0 → 100644
View file @
4883c6e
/*
* Copyright (C) 2017, David PHAM-VAN <dev.nfet.net@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
part of
printing
;
class
Printing
{
static
const
MethodChannel
_channel
=
MethodChannel
(
'printing'
);
static
Future
<
Null
>
printPdf
({
PdfDocument
document
,
List
<
int
>
bytes
})
async
{
assert
(
document
!=
null
||
bytes
!=
null
);
assert
(!(
document
==
null
&&
bytes
==
null
));
if
(
document
!=
null
)
bytes
=
document
.
save
();
final
Map
<
String
,
dynamic
>
params
=
<
String
,
dynamic
>{
'doc'
:
Uint8List
.
fromList
(
bytes
),
};
await
_channel
.
invokeMethod
(
'printPdf'
,
params
);
}
static
Future
<
Null
>
sharePdf
(
{
PdfDocument
document
,
List
<
int
>
bytes
,
Rect
bounds
})
async
{
assert
(
document
!=
null
||
bytes
!=
null
);
assert
(!(
document
==
null
&&
bytes
==
null
));
if
(
document
!=
null
)
bytes
=
document
.
save
();
if
(
bounds
==
null
)
{
bounds
=
Rect
.
fromCircle
(
center:
Offset
.
zero
,
radius:
10.0
);
}
final
Map
<
String
,
dynamic
>
params
=
<
String
,
dynamic
>{
'doc'
:
Uint8List
.
fromList
(
bytes
),
'x'
:
bounds
.
left
,
'y'
:
bounds
.
top
,
'w'
:
bounds
.
width
,
'h'
:
bounds
.
height
,
};
await
_channel
.
invokeMethod
(
'sharePdf'
,
params
);
}
}
...
...
Please
register
or
login
to post a comment