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-05-03 07:47:43 -0400
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
46907d52bfaae7ed873cba455b1b8ac7169d3fe4
46907d52
1 parent
e72b0b14
Improve tests
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
97 additions
and
53 deletions
.gitignore
pdf/test/isolate_test.dart
pdf/test/jpeg_test.dart
pdf/test/utils.dart
pdf/test/widget_container_test.dart
pdf/test/widget_theme_test.dart
.gitignore
View file @
46907d5
...
...
@@ -48,3 +48,5 @@ test/diff
ref
!test/golden/*.pdf
.flutter-plugins-dependencies
cache_*
...
...
pdf/test/isolate_test.dart
View file @
46907d5
...
...
@@ -25,6 +25,8 @@ import 'package:pdf/pdf.dart';
import
'package:pdf/widgets.dart'
;
import
'package:test/test.dart'
;
import
'utils.dart'
;
class
Message
{
Message
(
this
.
image
,
this
.
sendPort
);
...
...
@@ -32,16 +34,6 @@ class Message {
final
SendPort
sendPort
;
}
Future
<
Uint8List
>
download
(
String
url
)
async
{
final
HttpClient
client
=
HttpClient
();
final
HttpClientRequest
request
=
await
client
.
getUrl
(
Uri
.
parse
(
url
));
final
HttpClientResponse
response
=
await
request
.
close
();
final
BytesBuilder
builder
=
await
response
.
fold
(
BytesBuilder
(),
(
BytesBuilder
b
,
List
<
int
>
d
)
=>
b
..
add
(
d
));
final
List
<
int
>
data
=
builder
.
takeBytes
();
return
Uint8List
.
fromList
(
data
);
}
void
compute
(
Message
message
)
{
final
Document
pdf
=
Document
();
...
...
pdf/test/jpeg_test.dart
View file @
46907d5
...
...
@@ -16,15 +16,15 @@
// ignore_for_file: omit_local_variable_types
import
'dart:async'
;
import
'dart:convert'
;
import
'dart:io'
;
import
'dart:typed_data'
;
import
'package:pdf/pdf.dart'
;
import
'package:pdf/widgets.dart'
;
import
'package:test/test.dart'
;
import
'utils.dart'
;
Document
pdf
;
PdfImage
image
;
...
...
@@ -118,16 +118,6 @@ void main() {
});
}
Future
<
Uint8List
>
download
(
String
url
)
async
{
final
HttpClient
client
=
HttpClient
();
final
HttpClientRequest
request
=
await
client
.
getUrl
(
Uri
.
parse
(
url
));
final
HttpClientResponse
response
=
await
request
.
close
();
final
BytesBuilder
builder
=
await
response
.
fold
(
BytesBuilder
(),
(
BytesBuilder
b
,
List
<
int
>
d
)
=>
b
..
add
(
d
));
final
List
<
int
>
data
=
builder
.
takeBytes
();
return
Uint8List
.
fromList
(
data
);
}
const
List
<
String
>
images
=
<
String
>[
'/9j/4AAQSkZJRgABAQEA3ADcAAD/4QAiRXhpZgAASUkqAAgAAAABABIBAwABAAAAAQAAAAAAAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCABQADADASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAkI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwDKgAAAAAAAKqAAAAlWAAACqgAJVgAqoAAACVYAKqAAAA//2Q=='
,
'/9j/4AAQSkZJRgABAQEA3ADcAAD/4QAiRXhpZgAASUkqAAgAAAABABIBAwABAAAAAgAAAAAAAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCABQADADASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAkI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwDKgAAAAAKqAAAAlWACqgAJVgAAAqoAAACVYAKqAAAAlWAD/9k='
,
...
...
pdf/test/utils.dart
0 → 100644
View file @
46907d5
/*
* 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.
*/
// ignore_for_file: omit_local_variable_types
import
'dart:async'
;
import
'dart:io'
;
import
'dart:math'
as
math
;
import
'dart:typed_data'
;
import
'package:pdf/pdf.dart'
;
import
'package:pdf/widgets.dart'
;
Future
<
Uint8List
>
download
(
String
url
,
{
bool
cache
=
true
,
String
prefix
=
'cache_'
,
String
suffix
,
})
async
{
File
file
;
if
(
cache
)
{
if
(
suffix
==
null
)
{
final
int
l
=
url
.
lastIndexOf
(
'.'
);
if
(
l
>=
0
)
{
suffix
=
url
.
substring
(
l
);
}
}
file
=
File
(
'
$prefix${url.hashCode}$suffix
'
);
if
(
file
.
existsSync
())
{
return
await
file
.
readAsBytes
();
}
}
print
(
'Downloading
$url
'
);
final
HttpClient
client
=
HttpClient
();
final
HttpClientRequest
request
=
await
client
.
getUrl
(
Uri
.
parse
(
url
));
final
HttpClientResponse
response
=
await
request
.
close
();
final
BytesBuilder
builder
=
await
response
.
fold
(
BytesBuilder
(),
(
BytesBuilder
b
,
List
<
int
>
d
)
=>
b
..
add
(
d
));
final
List
<
int
>
data
=
builder
.
takeBytes
();
if
(
cache
)
{
await
file
.
writeAsBytes
(
data
);
}
return
Uint8List
.
fromList
(
data
);
}
PdfImage
generateBitmap
(
PdfDocument
pdf
,
int
w
,
int
h
)
{
final
Uint32List
bm
=
Uint32List
(
w
*
h
);
final
double
dw
=
w
.
toDouble
();
final
double
dh
=
h
.
toDouble
();
for
(
int
y
=
0
;
y
<
h
;
y
++)
{
for
(
int
x
=
0
;
x
<
w
;
x
++)
{
bm
[
y
*
w
+
x
]
=
(
math
.
sin
(
x
/
dw
)
*
256
).
toInt
()
|
(
math
.
sin
(
y
/
dh
)
*
256
).
toInt
()
<<
8
|
(
math
.
sin
(
x
/
dw
*
y
/
dh
)
*
256
).
toInt
()
<<
16
|
0xff000000
;
}
}
return
PdfImage
(
pdf
,
image:
bm
.
buffer
.
asUint8List
(),
width:
w
,
height:
h
,
);
}
Font
loadFont
(
String
filename
)
{
final
Uint8List
data
=
File
(
filename
).
readAsBytesSync
();
return
Font
.
ttf
(
data
.
buffer
.
asByteData
());
}
...
...
pdf/test/widget_container_test.dart
View file @
46907d5
...
...
@@ -17,35 +17,14 @@
// ignore_for_file: omit_local_variable_types
import
'dart:io'
;
import
'dart:math'
as
math
;
import
'dart:typed_data'
;
import
'package:test/test.dart'
;
import
'package:pdf/pdf.dart'
;
import
'package:pdf/widgets.dart'
;
import
'package:test/test.dart'
;
Document
pdf
;
import
'utils.dart'
;
PdfImage
generateBitmap
(
PdfDocument
pdf
,
int
w
,
int
h
)
{
final
Uint32List
bm
=
Uint32List
(
w
*
h
);
final
double
dw
=
w
.
toDouble
();
final
double
dh
=
h
.
toDouble
();
for
(
int
y
=
0
;
y
<
h
;
y
++)
{
for
(
int
x
=
0
;
x
<
w
;
x
++)
{
bm
[
y
*
w
+
x
]
=
(
math
.
sin
(
x
/
dw
)
*
256
).
toInt
()
|
(
math
.
sin
(
y
/
dh
)
*
256
).
toInt
()
<<
8
|
(
math
.
sin
(
x
/
dw
*
y
/
dh
)
*
256
).
toInt
()
<<
16
|
0xff000000
;
}
}
return
PdfImage
(
pdf
,
image:
bm
.
buffer
.
asUint8List
(),
width:
w
,
height:
h
,
);
}
Document
pdf
;
void
main
(
)
{
setUpAll
(()
{
...
...
pdf/test/widget_theme_test.dart
View file @
46907d5
...
...
@@ -17,11 +17,12 @@
// ignore_for_file: omit_local_variable_types
import
'dart:io'
;
import
'dart:typed_data'
;
import
'package:pdf/pdf.dart'
;
import
'package:test/test.dart'
;
import
'package:pdf/widgets.dart'
;
import
'package:test/test.dart'
;
import
'utils.dart'
;
Document
pdf
;
Font
openSans
;
...
...
@@ -30,11 +31,6 @@ Font roboto;
Font
notoSans
;
Font
genyomintw
;
Font
loadFont
(
String
filename
)
{
final
Uint8List
data
=
File
(
filename
).
readAsBytesSync
();
return
Font
.
ttf
(
data
.
buffer
.
asByteData
());
}
void
main
(
)
{
setUpAll
(()
{
Document
.
debug
=
true
;
...
...
Please
register
or
login
to post a comment