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
2021-04-04 11:19:50 -0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
756bb8e1ade393d661ed6423cf927e44bf09740a
756bb8e1
1 parent
cd06dd31
Generalize PdfObject
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
44 additions
and
90 deletions
pdf/lib/src/pdf/array.dart
pdf/lib/src/pdf/border.dart
pdf/lib/src/pdf/catalog.dart
pdf/lib/src/pdf/encryption.dart
pdf/lib/src/pdf/font_descriptor.dart
pdf/lib/src/pdf/function.dart
pdf/lib/src/pdf/graphic_state.dart
pdf/lib/src/pdf/graphic_stream.dart
pdf/lib/src/pdf/info.dart
pdf/lib/src/pdf/names.dart
pdf/lib/src/pdf/object.dart
pdf/lib/src/pdf/object_dict.dart
pdf/lib/src/pdf/object_stream.dart
pdf/lib/src/pdf/outline.dart
pdf/lib/src/pdf/pattern.dart
pdf/lib/src/pdf/shading.dart
pdf/lib/src/pdf/array.dart
View file @
756bb8e
...
...
@@ -17,24 +17,15 @@
import
'data_types.dart'
;
import
'document.dart'
;
import
'object.dart'
;
import
'stream.dart'
;
/// An array object
class
PdfArrayObject
extends
PdfObject
{
class
PdfArrayObject
extends
PdfObject
<
PdfArray
>
{
/// Creates an array object
PdfArrayObject
(
PdfDocument
pdfDocument
,
this
.
array
,
)
:
super
(
pdfDocument
);
PdfArray
array
,
)
:
super
(
pdfDocument
,
params:
array
);
/// The array
final
PdfArray
array
;
@override
void
writeContent
(
PdfStream
os
)
{
super
.
writeContent
(
os
);
array
.
output
(
os
);
os
.
putBytes
(<
int
>[
0x0a
]);
}
PdfArray
get
array
=>
params
;
}
...
...
pdf/lib/src/pdf/border.dart
View file @
756bb8e
...
...
@@ -17,7 +17,7 @@
import
'annotation.dart'
;
import
'data_types.dart'
;
import
'document.dart'
;
import
'object.dart'
;
import
'object
_dict
.dart'
;
/// Border style
enum
PdfBorderStyle
{
...
...
@@ -40,7 +40,7 @@ enum PdfBorderStyle {
}
/// Defines a border object
class
PdfBorder
extends
PdfObject
{
class
PdfBorder
extends
PdfObject
Dict
{
/// Creates a border using the predefined styles in [PdfAnnot].
PdfBorder
(
PdfDocument
pdfDocument
,
...
...
pdf/lib/src/pdf/catalog.dart
View file @
756bb8e
...
...
@@ -18,7 +18,6 @@ import 'annotation.dart';
import
'data_types.dart'
;
import
'document.dart'
;
import
'names.dart'
;
import
'object.dart'
;
import
'object_dict.dart'
;
import
'outline.dart'
;
import
'page_list.dart'
;
...
...
pdf/lib/src/pdf/encryption.dart
View file @
756bb8e
...
...
@@ -18,9 +18,10 @@ import 'dart:typed_data';
import
'document.dart'
;
import
'object.dart'
;
import
'object_dict.dart'
;
/// Encryption object
abstract
class
PdfEncryption
extends
PdfObject
{
abstract
class
PdfEncryption
extends
PdfObject
Dict
{
/// Creates an encryption object
PdfEncryption
(
PdfDocument
pdfDocument
)
:
super
(
pdfDocument
);
...
...
pdf/lib/src/pdf/font_descriptor.dart
View file @
756bb8e
...
...
@@ -15,7 +15,6 @@
*/
import
'data_types.dart'
;
import
'object.dart'
;
import
'object_dict.dart'
;
import
'object_stream.dart'
;
import
'ttffont.dart'
;
...
...
pdf/lib/src/pdf/function.dart
View file @
756bb8e
...
...
@@ -17,10 +17,10 @@
import
'color.dart'
;
import
'data_types.dart'
;
import
'document.dart'
;
import
'object.dart'
;
import
'object
_dict
.dart'
;
import
'object_stream.dart'
;
abstract
class
PdfBaseFunction
extends
PdfObject
{
abstract
class
PdfBaseFunction
extends
PdfObject
Dict
{
PdfBaseFunction
(
PdfDocument
pdfDocument
)
:
super
(
pdfDocument
);
factory
PdfBaseFunction
.
colorsAndStops
(
...
...
pdf/lib/src/pdf/graphic_state.dart
View file @
756bb8e
...
...
@@ -21,7 +21,7 @@ import 'package:meta/meta.dart';
import
'data_types.dart'
;
import
'document.dart'
;
import
'function.dart'
;
import
'object.dart'
;
import
'object
_dict
.dart'
;
import
'smask.dart'
;
enum
PdfBlendMode
{
...
...
@@ -159,7 +159,7 @@ class PdfGraphicState {
}
/// Stores all the graphic states used in the document
class
PdfGraphicStates
extends
PdfObject
{
class
PdfGraphicStates
extends
PdfObject
Dict
{
/// Create a new Graphic States object
PdfGraphicStates
(
PdfDocument
pdfDocument
)
:
super
(
pdfDocument
);
...
...
pdf/lib/src/pdf/graphic_stream.dart
View file @
756bb8e
...
...
@@ -18,13 +18,13 @@ import 'data_types.dart';
import
'document.dart'
;
import
'font.dart'
;
import
'graphic_state.dart'
;
import
'object.dart'
;
import
'object
_dict
.dart'
;
import
'pattern.dart'
;
import
'shading.dart'
;
import
'xobject.dart'
;
/// Helper functions for graphic objects
mixin
PdfGraphicStream
on
PdfObject
{
mixin
PdfGraphicStream
on
PdfObject
Dict
{
/// Isolated transparency: If this flag is true, objects within the group
/// shall be composited against a fully transparent initial backdrop;
/// if false, they shall be composited against the group’s backdrop
...
...
pdf/lib/src/pdf/info.dart
View file @
756bb8e
...
...
@@ -16,10 +16,10 @@
import
'data_types.dart'
;
import
'document.dart'
;
import
'object.dart'
;
import
'object
_dict
.dart'
;
/// Information object
class
PdfInfo
extends
PdfObject
{
class
PdfInfo
extends
PdfObject
Dict
{
/// Create an information object
PdfInfo
(
PdfDocument
pdfDocument
,
{
this
.
title
,
...
...
pdf/lib/src/pdf/names.dart
View file @
756bb8e
...
...
@@ -16,11 +16,11 @@
import
'data_types.dart'
;
import
'document.dart'
;
import
'object.dart'
;
import
'object
_dict
.dart'
;
import
'page.dart'
;
/// Pdf Name object
class
PdfNames
extends
PdfObject
{
class
PdfNames
extends
PdfObject
Dict
{
/// This constructs a Pdf Name object
PdfNames
(
PdfDocument
pdfDocument
)
:
super
(
pdfDocument
);
...
...
pdf/lib/src/pdf/object.dart
View file @
756bb8e
...
...
@@ -21,12 +21,12 @@ import 'document.dart';
import
'stream.dart'
;
/// Base Object used in the PDF file
class
PdfObject
{
abstract
class
PdfObject
<
T
extends
PdfDataType
>
{
/// This is usually called by extensors to this class, and sets the
/// Pdf Object Type
PdfObject
(
this
.
pdfDocument
,
{
// String? type
,
required
this
.
params
,
this
.
objgen
=
0
,
int
?
objser
,
})
:
objser
=
objser
??
pdfDocument
.
genSerial
()
{
...
...
@@ -34,7 +34,7 @@ class PdfObject {
}
/// This is the object parameters.
final
PdfDict
params
=
PdfDict
()
;
final
T
params
;
/// This is the unique serial number for this object.
final
int
objser
;
...
...
@@ -64,10 +64,8 @@ class PdfObject {
}
void
writeContent
(
PdfStream
os
)
{
if
(
params
.
isNotEmpty
)
{
params
.
output
(
os
);
os
.
putString
(
'
\n
'
);
}
params
.
output
(
os
);
os
.
putByte
(
0x0a
);
}
/// The write method should call this after writing anything to the
...
...
pdf/lib/src/pdf/object_dict.dart
View file @
756bb8e
...
...
@@ -17,9 +17,10 @@
import
'data_types.dart'
;
import
'document.dart'
;
import
'object.dart'
;
import
'stream.dart'
;
/// Object with a PdfDict used in the PDF file
class
PdfObjectDict
extends
PdfObject
{
class
PdfObjectDict
extends
PdfObject
<
PdfDict
>
{
/// This is usually called by extensors to this class, and sets the
/// Pdf Object Type
PdfObjectDict
(
...
...
@@ -27,15 +28,17 @@ class PdfObjectDict extends PdfObject {
String
?
type
,
int
objgen
=
0
,
int
?
objser
,
})
:
super
(
pdfDocument
,
objgen:
objgen
,
objser:
objser
)
{
})
:
super
(
pdfDocument
,
params:
PdfDict
(),
objgen:
objgen
,
objser:
objser
)
{
if
(
type
!=
null
)
{
params
[
'/Type'
]
=
PdfName
(
type
);
}
}
/// This is the object parameters.
final
PdfDict
params
=
PdfDict
();
@override
String
toString
()
=>
'
$runtimeType
$params
'
;
void
writeContent
(
PdfStream
os
)
{
if
(
params
.
isNotEmpty
)
{
params
.
output
(
os
);
os
.
putByte
(
0x0a
);
}
}
}
...
...
pdf/lib/src/pdf/object_stream.dart
View file @
756bb8e
...
...
@@ -14,9 +14,6 @@
* limitations under the License.
*/
import
'dart:typed_data'
;
import
'ascii85.dart'
;
import
'data_types.dart'
;
import
'document.dart'
;
import
'object_dict.dart'
;
...
...
@@ -37,47 +34,13 @@ class PdfObjectStream extends PdfObjectDict {
/// defines if the stream needs to be converted to ascii85
final
bool
isBinary
;
Uint8List
?
_data
;
@override
void
prepare
()
{
super
.
prepare
();
if
(
params
.
containsKey
(
'/Filter'
)
&&
_data
==
null
)
{
// The data is already in the right format
_data
=
buf
.
output
();
}
else
if
(
pdfDocument
.
deflate
!=
null
)
{
final
original
=
buf
.
output
();
final
newData
=
Uint8List
.
fromList
(
pdfDocument
.
deflate
!(
original
));
if
(
newData
.
lengthInBytes
<
original
.
lengthInBytes
)
{
params
[
'/Filter'
]
=
const
PdfName
(
'/FlateDecode'
);
_data
=
newData
;
}
}
if
(
_data
==
null
)
{
if
(
isBinary
)
{
// This is an Ascii85 stream
final
e
=
Ascii85Encoder
();
_data
=
e
.
convert
(
buf
.
output
());
params
[
'/Filter'
]
=
const
PdfName
(
'/ASCII85Decode'
);
}
else
{
// This is a non-deflated stream
_data
=
buf
.
output
();
}
}
if
(
pdfDocument
.
encryption
!=
null
)
{
_data
=
pdfDocument
.
encryption
!.
encrypt
(
_data
!,
this
);
}
params
[
'/Length'
]
=
PdfNum
(
_data
!.
length
);
}
@override
void
writeContent
(
PdfStream
os
)
{
super
.
writeContent
(
os
);
os
.
putString
(
'stream
\n
'
);
os
.
putBytes
(
_data
!);
os
.
putString
(
'
\n
endstream
\n
'
);
PdfDictStream
(
object:
this
,
isBinary:
isBinary
,
values:
params
.
values
,
data:
buf
.
output
(),
).
output
(
os
);
}
}
...
...
pdf/lib/src/pdf/outline.dart
View file @
756bb8e
...
...
@@ -17,7 +17,7 @@
import
'color.dart'
;
import
'data_types.dart'
;
import
'document.dart'
;
import
'object.dart'
;
import
'object
_dict
.dart'
;
import
'page.dart'
;
import
'rect.dart'
;
...
...
@@ -46,7 +46,7 @@ enum PdfOutlineStyle {
}
/// Pdf Outline object
class
PdfOutline
extends
PdfObject
{
class
PdfOutline
extends
PdfObject
Dict
{
/// Constructs a Pdf Outline object.
/// When selected, the specified region is displayed.
PdfOutline
(
...
...
pdf/lib/src/pdf/pattern.dart
View file @
756bb8e
...
...
@@ -19,10 +19,10 @@ import 'package:vector_math/vector_math_64.dart';
import
'data_types.dart'
;
import
'document.dart'
;
import
'graphic_state.dart'
;
import
'object.dart'
;
import
'object
_dict
.dart'
;
import
'shading.dart'
;
abstract
class
PdfPattern
extends
PdfObject
{
abstract
class
PdfPattern
extends
PdfObject
Dict
{
PdfPattern
(
PdfDocument
pdfDocument
,
this
.
patternType
,
this
.
matrix
)
:
super
(
pdfDocument
);
...
...
pdf/lib/src/pdf/shading.dart
View file @
756bb8e
...
...
@@ -17,13 +17,13 @@
import
'data_types.dart'
;
import
'document.dart'
;
import
'function.dart'
;
import
'object.dart'
;
import
'object
_dict
.dart'
;
import
'point.dart'
;
import
'rect.dart'
;
enum
PdfShadingType
{
axial
,
radial
}
class
PdfShading
extends
PdfObject
{
class
PdfShading
extends
PdfObject
Dict
{
PdfShading
(
PdfDocument
pdfDocument
,
{
required
this
.
shadingType
,
...
...
Please
register
or
login
to post a comment