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
2023-04-07 09:17:24 -0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
8e9a6be87b057a729a4dc2132f91fd656dfd3a98
8e9a6be8
1 parent
68e4d066
Improve PdfArray and PdfDict constructors
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
41 additions
and
54 deletions
pdf/CHANGELOG.md
pdf/lib/src/pdf/format/array.dart
pdf/lib/src/pdf/format/dict.dart
pdf/lib/src/pdf/format/dict_stream.dart
pdf/lib/src/pdf/obj/annotation.dart
pdf/lib/src/pdf/obj/catalog.dart
pdf/lib/src/pdf/obj/font.dart
pdf/lib/src/pdf/obj/font_descriptor.dart
pdf/lib/src/pdf/obj/graphic_stream.dart
pdf/lib/src/pdf/obj/info.dart
pdf/lib/src/pdf/obj/names.dart
pdf/lib/src/pdf/obj/object_stream.dart
pdf/lib/src/pdf/obj/page.dart
pdf/lib/src/pdf/obj/page_label.dart
pdf/lib/src/pdf/obj/page_list.dart
pdf/lib/src/pdf/obj/signature.dart
pdf/lib/src/pdf/obj/smask.dart
pdf/lib/src/pdf/obj/ttffont.dart
pdf/lib/src/pdf/obj/type1_font.dart
pdf/test/data_types_test.dart
pdf/test/minimal_test.dart
pdf/CHANGELOG.md
View file @
8e9a6be
...
...
@@ -4,6 +4,7 @@
-
Fix Type1 font widths
-
Deprecate PdfArrayObject and PdfObjectDict
-
Improve PdfArray and PdfDict constructors
## 3.10.1
...
...
pdf/lib/src/pdf/format/array.dart
View file @
8e9a6be
...
...
@@ -27,11 +27,7 @@ import 'stream.dart';
import
'string.dart'
;
class
PdfArray
<
T
extends
PdfDataType
>
extends
PdfDataType
{
PdfArray
([
Iterable
<
T
>?
values
])
{
if
(
values
!=
null
)
{
this
.
values
.
addAll
(
values
);
}
}
PdfArray
([
Iterable
<
T
>?
values
])
:
values
=
[
if
(
values
!=
null
)
...
values
];
static
PdfArray
<
PdfIndirect
>
fromObjects
(
Iterable
<
PdfObjectBase
>
objects
)
{
return
PdfArray
(
objects
.
map
<
PdfIndirect
>((
e
)
=>
e
.
ref
()).
toList
());
...
...
@@ -58,7 +54,7 @@ class PdfArray<T extends PdfDataType> extends PdfDataType {
}
}
final
List
<
T
>
values
=
<
T
>[]
;
final
List
<
T
>
values
;
void
add
(
T
v
)
{
values
.
add
(
v
);
...
...
pdf/lib/src/pdf/format/dict.dart
View file @
8e9a6be
...
...
@@ -26,19 +26,13 @@ import 'object_base.dart';
import
'stream.dart'
;
class
PdfDict
<
T
extends
PdfDataType
>
extends
PdfDataType
{
factory
PdfDict
([
Map
<
String
,
T
>?
values
])
{
final
_values
=
<
String
,
T
>{};
if
(
values
!=
null
)
{
_values
.
addAll
(
values
);
}
return
PdfDict
.
values
(
_values
);
}
PdfDict
([
Map
<
String
,
T
>?
values
])
:
values
=
{
if
(
values
!=
null
)
...
values
};
const
PdfDict
.
values
([
this
.
values
=
const
{}])
;
PdfDict
.
values
([
Map
<
String
,
T
>?
values
])
:
values
=
values
??
{}
;
static
PdfDict
<
PdfIndirect
>
fromObjectMap
(
Map
<
String
,
PdfObjectBase
>
objects
)
{
return
PdfDict
(
return
PdfDict
.
values
(
objects
.
map
<
String
,
PdfIndirect
>(
(
key
,
value
)
=>
MapEntry
<
String
,
PdfIndirect
>(
key
,
value
.
ref
()),
),
...
...
@@ -49,6 +43,8 @@ class PdfDict<T extends PdfDataType> extends PdfDataType {
bool
get
isNotEmpty
=>
values
.
isNotEmpty
;
bool
get
isEmpty
=>
values
.
isEmpty
;
operator
[]=(
String
k
,
T
v
)
{
values
[
k
]
=
v
;
}
...
...
pdf/lib/src/pdf/format/dict_stream.dart
View file @
8e9a6be
...
...
@@ -25,22 +25,16 @@ import 'object_base.dart';
import
'stream.dart'
;
class
PdfDictStream
extends
PdfDict
<
PdfDataType
>
{
factory
PdfDictStream
({
PdfDictStream
({
Map
<
String
,
PdfDataType
>?
values
,
Uint8List
?
data
,
bool
isBinary
=
false
,
bool
encrypt
=
true
,
bool
compress
=
true
,
})
{
return
PdfDictStream
.
values
(
values:
values
??
{},
data:
data
??
Uint8List
(
0
),
encrypt:
encrypt
,
compress:
compress
,
isBinary:
isBinary
,
);
}
this
.
isBinary
=
false
,
this
.
encrypt
=
true
,
this
.
compress
=
true
,
})
:
data
=
data
??
Uint8List
(
0
),
super
.
values
(
values
??
{});
@Deprecated
(
'Use PdfDictStream() instead'
)
PdfDictStream
.
values
({
required
Map
<
String
,
PdfDataType
>
values
,
required
this
.
data
,
...
...
pdf/lib/src/pdf/obj/annotation.dart
View file @
8e9a6be
...
...
@@ -106,7 +106,7 @@ class PdfChoiceField extends PdfAnnotWidget {
class
PdfAnnot
extends
PdfObject
<
PdfDict
>
{
PdfAnnot
(
this
.
pdfPage
,
this
.
annot
)
:
super
(
pdfPage
.
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Annot'
),
}))
{
pdfPage
.
annotations
.
add
(
this
);
...
...
@@ -315,7 +315,7 @@ abstract class PdfAnnotBase {
}
if
(
_appearances
.
isNotEmpty
)
{
params
[
'/AP'
]
=
PdfDict
(
_appearances
);
params
[
'/AP'
]
=
PdfDict
.
values
(
_appearances
);
if
(
_as
!=
null
)
{
params
[
'/AS'
]
=
_as
!;
}
...
...
@@ -376,7 +376,7 @@ class PdfAnnotNamedLink extends PdfAnnotBase {
@override
void
build
(
PdfPage
page
,
PdfObject
object
,
PdfDict
params
)
{
super
.
build
(
page
,
object
,
params
);
params
[
'/A'
]
=
PdfDict
(
params
[
'/A'
]
=
PdfDict
.
values
(
{
'/S'
:
const
PdfName
(
'/GoTo'
),
'/D'
:
PdfString
.
fromString
(
dest
),
...
...
@@ -412,7 +412,7 @@ class PdfAnnotUrlLink extends PdfAnnotBase {
@override
void
build
(
PdfPage
page
,
PdfObject
object
,
PdfDict
params
)
{
super
.
build
(
page
,
object
,
params
);
params
[
'/A'
]
=
PdfDict
(
params
[
'/A'
]
=
PdfDict
.
values
(
{
'/S'
:
const
PdfName
(
'/URI'
),
'/URI'
:
PdfString
.
fromString
(
url
),
...
...
pdf/lib/src/pdf/obj/catalog.dart
View file @
8e9a6be
...
...
@@ -38,7 +38,7 @@ class PdfCatalog extends PdfObject<PdfDict> {
int
?
objser
,
})
:
super
(
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Catalog'
),
}),
objser:
objser
,
...
...
@@ -106,7 +106,7 @@ class PdfCatalog extends PdfObject<PdfDict> {
if
(
pdfDocument
.
sign
!=
null
)
{
if
(
pdfDocument
.
sign
!.
value
.
hasMDP
)
{
params
[
'/Perms'
]
=
PdfDict
({
params
[
'/Perms'
]
=
PdfDict
.
values
({
'/DocMDP'
:
pdfDocument
.
sign
!.
ref
(),
});
}
...
...
pdf/lib/src/pdf/obj/font.dart
View file @
8e9a6be
...
...
@@ -34,7 +34,7 @@ abstract class PdfFont extends PdfObject<PdfDict> {
PdfFont
.
create
(
PdfDocument
pdfDocument
,
{
required
this
.
subtype
})
:
super
(
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Font'
),
}),
)
{
...
...
pdf/lib/src/pdf/obj/font_descriptor.dart
View file @
8e9a6be
...
...
@@ -30,7 +30,7 @@ class PdfFontDescriptor extends PdfObject<PdfDict> {
this
.
file
,
)
:
super
(
ttfFont
.
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/FontDescriptor'
),
}),
);
...
...
pdf/lib/src/pdf/obj/graphic_stream.dart
View file @
8e9a6be
...
...
@@ -136,7 +136,7 @@ mixin PdfGraphicStream on PdfObject<PdfDict> {
if
(
pdfDocument
.
hasGraphicStates
)
{
// Declare Transparency Group settings
params
[
'/Group'
]
=
PdfDict
({
params
[
'/Group'
]
=
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Group'
),
'/S'
:
const
PdfName
(
'/Transparency'
),
'/CS'
:
const
PdfName
(
'/DeviceRGB'
),
...
...
pdf/lib/src/pdf/obj/info.dart
View file @
8e9a6be
...
...
@@ -32,7 +32,7 @@ class PdfInfo extends PdfObject<PdfDict> {
this
.
producer
,
})
:
super
(
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
if
(
author
!=
null
)
'/Author'
:
PdfString
.
fromString
(
author
),
if
(
creator
!=
null
)
'/Creator'
:
PdfString
.
fromString
(
creator
),
if
(
title
!=
null
)
'/Title'
:
PdfString
.
fromString
(
title
),
...
...
pdf/lib/src/pdf/obj/names.dart
View file @
8e9a6be
...
...
@@ -42,7 +42,7 @@ class PdfNames extends PdfObject<PdfDict> {
})
{
assert
(
page
.
pdfDocument
==
pdfDocument
);
_dests
[
name
]
=
PdfDict
({
_dests
[
name
]
=
PdfDict
.
values
({
'/D'
:
PdfArray
([
page
.
ref
(),
const
PdfName
(
'/XYZ'
),
...
...
pdf/lib/src/pdf/obj/object_stream.dart
View file @
8e9a6be
...
...
@@ -30,7 +30,7 @@ class PdfObjectStream extends PdfObject<PdfDict> {
this
.
isBinary
=
false
,
})
:
super
(
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
if
(
type
!=
null
)
'/Type'
:
PdfName
(
type
),
}),
);
...
...
@@ -43,7 +43,7 @@ class PdfObjectStream extends PdfObject<PdfDict> {
@override
void
writeContent
(
PdfStream
s
)
{
PdfDictStream
.
values
(
PdfDictStream
(
isBinary:
isBinary
,
values:
params
.
values
,
data:
buf
.
output
(),
...
...
pdf/lib/src/pdf/obj/page.dart
View file @
8e9a6be
...
...
@@ -54,7 +54,7 @@ class PdfPage extends PdfObject<PdfDict> with PdfGraphicStream {
int
?
objser
,
int
objgen
=
0
,
})
:
super
(
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Page'
),
}),
objser:
objser
,
...
...
pdf/lib/src/pdf/obj/page_label.dart
View file @
8e9a6be
...
...
@@ -73,7 +73,7 @@ class PdfPageLabel {
case
null
:
s
=
null
;
}
return
PdfDict
({
return
PdfDict
.
values
({
if
(
s
!=
null
)
'/S'
:
s
,
if
(
prefix
!=
null
&&
prefix
!.
isNotEmpty
)
'/P'
:
PdfString
.
fromString
(
prefix
!),
...
...
pdf/lib/src/pdf/obj/page_list.dart
View file @
8e9a6be
...
...
@@ -31,7 +31,7 @@ class PdfPageList extends PdfObject<PdfDict> {
int
?
objser
,
})
:
super
(
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Pages'
),
}),
objgen:
objgen
,
...
...
pdf/lib/src/pdf/obj/signature.dart
View file @
8e9a6be
...
...
@@ -45,7 +45,7 @@ class PdfSignature extends PdfObject<PdfDict> {
List
<
Uint8List
>?
ocsp
,
})
:
super
(
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Sig'
),
}),
)
{
...
...
pdf/lib/src/pdf/obj/smask.dart
View file @
8e9a6be
...
...
@@ -69,7 +69,7 @@ class PdfSoftMask {
String
toString
()
=>
'
$runtimeType
'
;
PdfDict
output
()
{
final
params
=
PdfDict
({
final
params
=
PdfDict
.
values
({
'/S'
:
const
PdfName
(
'/Luminosity'
),
'/G'
:
_mask
.
ref
(),
});
...
...
pdf/lib/src/pdf/obj/ttffont.dart
View file @
8e9a6be
...
...
@@ -115,7 +115,7 @@ class PdfTtfFont extends PdfFont {
file
.
buf
.
putBytes
(
data
);
file
.
params
[
'/Length1'
]
=
PdfNum
(
data
.
length
);
final
descendantFont
=
PdfDict
({
final
descendantFont
=
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Font'
),
'/BaseFont'
:
PdfName
(
'/
$fontName
'
),
'/FontFile2'
:
file
.
ref
(),
...
...
@@ -127,7 +127,7 @@ class PdfTtfFont extends PdfFont {
'/CIDToGIDMap'
:
const
PdfName
(
'/Identity'
),
'/DW'
:
const
PdfNum
(
1000
),
'/Subtype'
:
const
PdfName
(
'/CIDFontType2'
),
'/CIDSystemInfo'
:
PdfDict
({
'/CIDSystemInfo'
:
PdfDict
.
values
({
'/Supplement'
:
const
PdfNum
(
0
),
'/Registry'
:
PdfString
.
fromString
(
'Adobe'
),
'/Ordering'
:
PdfString
.
fromString
(
'Identity-H'
),
...
...
pdf/lib/src/pdf/obj/type1_font.dart
View file @
8e9a6be
...
...
@@ -64,7 +64,7 @@ class PdfType1Font extends PdfFont {
final
fontDescriptor
=
PdfObject
<
PdfDict
>(
pdfDocument
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/FontDescriptor'
),
'/FontName'
:
PdfName
(
'/
$fontName
'
),
'/Flags'
:
PdfNum
(
32
+
(
isFixedPitch
?
1
:
0
)),
...
...
pdf/test/data_types_test.dart
View file @
8e9a6be
...
...
@@ -102,7 +102,7 @@ void main() {
expect
(
PdfDict
().
toString
(),
'<<>>'
);
expect
(
PdfDict
({
PdfDict
.
values
({
'/Name'
:
const
PdfName
(
'/Value'
),
'/Bool'
:
const
PdfBool
(
true
),
'/Num'
:
const
PdfNum
(
42
),
...
...
pdf/test/minimal_test.dart
View file @
8e9a6be
...
...
@@ -33,7 +33,7 @@ void main() {
final
pages
=
PdfObjectBase
(
objser:
objser
++,
settings:
settings
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Pages'
),
'/Count'
:
const
PdfNum
(
1
),
}));
...
...
@@ -48,11 +48,11 @@ void main() {
final
page
=
PdfObjectBase
(
objser:
objser
++,
settings:
settings
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Page'
),
'/Parent'
:
pages
.
ref
(),
'/MediaBox'
:
PdfArray
.
fromNum
([
0
,
0
,
595.27559
,
841.88976
]),
'/Resources'
:
PdfDict
({
'/Resources'
:
PdfDict
.
values
({
'/ProcSet'
:
PdfArray
([
const
PdfName
(
'/PDF'
),
]),
...
...
@@ -65,7 +65,7 @@ void main() {
final
catalog
=
PdfObjectBase
(
objser:
objser
++,
settings:
settings
,
params:
PdfDict
({
params:
PdfDict
.
values
({
'/Type'
:
const
PdfName
(
'/Catalog'
),
'/Pages'
:
pages
.
ref
(),
}));
...
...
Please
register
or
login
to post a comment