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-03-19 08:30:08 -0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
605865f05983cd9168185e545fb9caae86c5f921
605865f0
1 parent
62427125
Improve Signature conformity
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
47 additions
and
35 deletions
pdf/lib/src/pdf/document.dart
pdf/lib/src/pdf/graphics.dart
pdf/lib/src/pdf/obj/catalog.dart
pdf/lib/src/pdf/obj/graphic_stream.dart
pdf/lib/src/pdf/obj/page_list.dart
pdf/lib/src/pdf/obj/signature.dart
pdf/lib/src/priv.dart
pdf/lib/src/widgets/document.dart
pdf/lib/src/pdf/document.dart
View file @
605865f
...
...
@@ -77,21 +77,17 @@ class PdfDocument {
prev
=
null
,
_objser
=
1
{
// create the catalog
catalog
=
PdfCatalog
(
this
,
PdfPageList
(
this
),
pageMode
);
catalog
=
PdfCatalog
(
this
,
PdfPageList
(
this
),
pageMode
:
pageMode
);
}
PdfDocument
.
load
(
this
.
prev
,
{
PdfPageMode
pageMode
=
PdfPageMode
.
none
,
DeflateCallback
?
deflate
,
bool
compress
=
true
,
this
.
verbose
=
false
,
})
:
deflate
=
compress
?
(
deflate
??
defaultDeflate
)
:
null
,
_objser
=
prev
!.
size
,
version
=
prev
.
version
{
// Now create some standard objects
catalog
=
PdfCatalog
(
this
,
PdfPageList
(
this
),
pageMode
);
// Import the existing document
prev
!.
mergeDocument
(
this
);
}
...
...
pdf/lib/src/pdf/graphics.dart
View file @
605865f
...
...
@@ -125,8 +125,7 @@ class PdfGraphics {
/// Default font if none selected
PdfFont
?
get
defaultFont
=>
_page
.
getDefaultFont
();
bool
_altered
=
false
;
bool
get
altered
=>
_altered
;
bool
get
altered
=>
_page
.
altered
;
/// Draw a surface on the previously defined shape
/// set evenOdd to false to use the nonzero winding number rule to determine the region to fill and to true to use the even-odd rule to determine the region to fill
...
...
@@ -141,7 +140,7 @@ class PdfGraphics {
}());
_buf
.
putString
(
'f
${evenOdd ? '*' : ''}
'
);
_altered
=
true
;
_
page
.
altered
=
true
;
assert
(()
{
if
(
_page
.
pdfDocument
.
verbose
)
{
...
...
@@ -164,7 +163,7 @@ class PdfGraphics {
}());
_buf
.
putString
(
'
${close ? 's' : 'S'}
'
);
_altered
=
true
;
_
page
.
altered
=
true
;
assert
(()
{
if
(
_page
.
pdfDocument
.
verbose
)
{
...
...
@@ -185,7 +184,7 @@ class PdfGraphics {
}());
_buf
.
putString
(
'h '
);
_altered
=
true
;
_
page
.
altered
=
true
;
assert
(()
{
if
(
_page
.
pdfDocument
.
verbose
)
{
...
...
@@ -232,7 +231,7 @@ class PdfGraphics {
}());
_buf
.
putString
(
'
${close ? 'b' : 'B'}${evenOdd ? '*' : ''}
'
);
_altered
=
true
;
_
page
.
altered
=
true
;
assert
(()
{
if
(
_page
.
pdfDocument
.
verbose
)
{
...
...
@@ -257,7 +256,7 @@ class PdfGraphics {
// The shader needs to be registered in the page resources
_page
.
addShader
(
shader
);
_buf
.
putString
(
'
${shader.name}
sh '
);
_altered
=
true
;
_
page
.
altered
=
true
;
assert
(()
{
if
(
_page
.
pdfDocument
.
verbose
)
{
...
...
@@ -364,7 +363,7 @@ class PdfGraphics {
}
_buf
.
putString
(
' cm
${img.name}
Do Q '
);
_altered
=
true
;
_
page
.
altered
=
true
;
assert
(()
{
if
(
_page
.
pdfDocument
.
verbose
)
{
...
...
@@ -581,7 +580,7 @@ class PdfGraphics {
return
true
;
}());
_altered
=
true
;
_
page
.
altered
=
true
;
}
void
reset
()
{
...
...
pdf/lib/src/pdf/obj/catalog.dart
View file @
605865f
...
...
@@ -32,9 +32,11 @@ class PdfCatalog extends PdfObjectDict {
/// This constructs a Pdf Catalog object
PdfCatalog
(
PdfDocument
pdfDocument
,
this
.
pdfPageList
,
this
.
pdfPageList
,
{
this
.
pageMode
,
)
:
super
(
pdfDocument
,
type:
'/Catalog'
);
int
objgen
=
0
,
int
?
objser
,
})
:
super
(
pdfDocument
,
type:
'/Catalog'
,
objser:
objser
,
objgen:
objgen
);
/// The pages of the document
final
PdfPageList
pdfPageList
;
...
...
@@ -46,7 +48,7 @@ class PdfCatalog extends PdfObjectDict {
PdfMetadata
?
metadata
;
/// The initial page mode
final
PdfPageMode
pageMode
;
final
PdfPageMode
?
pageMode
;
/// The anchor names
PdfNames
?
names
;
...
...
@@ -91,7 +93,9 @@ class PdfCatalog extends PdfObjectDict {
}
// the /PageMode setting
params
[
'/PageMode'
]
=
PdfName
(
_pdfPageModes
[
pageMode
.
index
]);
if
(
pageMode
!=
null
)
{
params
[
'/PageMode'
]
=
PdfName
(
_pdfPageModes
[
pageMode
!.
index
]);
}
if
(
pdfDocument
.
sign
!=
null
)
{
if
(
pdfDocument
.
sign
!.
value
.
hasMDP
)
{
...
...
pdf/lib/src/pdf/obj/graphic_stream.dart
View file @
605865f
...
...
@@ -52,6 +52,10 @@ mixin PdfGraphicStream on PdfObjectDict {
/// The xobjects or other images in the pdf
final
xObjects
=
<
String
,
PdfXObject
>{};
bool
_altered
=
false
;
bool
get
altered
=>
_altered
;
set
altered
(
bool
_
)
=>
_altered
=
true
;
/// Add a font to this graphic object
void
addFont
(
PdfFont
font
)
{
if
(!
fonts
.
containsKey
(
font
.
name
))
{
...
...
@@ -101,12 +105,14 @@ mixin PdfGraphicStream on PdfObjectDict {
// This holds any resources for this page
final
resources
=
PdfDict
();
resources
[
'/ProcSet'
]
=
PdfArray
(
const
<
PdfName
>[
PdfName
(
'/PDF'
),
PdfName
(
'/Text'
),
PdfName
(
'/ImageB'
),
PdfName
(
'/ImageC'
),
]);
if
(
altered
)
{
resources
[
'/ProcSet'
]
=
PdfArray
(
const
<
PdfName
>[
PdfName
(
'/PDF'
),
PdfName
(
'/Text'
),
PdfName
(
'/ImageB'
),
PdfName
(
'/ImageC'
),
]);
}
// fonts
if
(
fonts
.
isNotEmpty
)
{
...
...
@@ -141,15 +147,17 @@ mixin PdfGraphicStream on PdfObjectDict {
resources
[
'/ExtGState'
]
=
pdfDocument
.
graphicStates
.
ref
();
}
if
(
params
.
containsKey
(
'/Resources'
))
{
final
res
=
params
[
'/Resources'
];
if
(
res
is
PdfDict
)
{
res
.
merge
(
resources
);
return
;
if
(
resources
.
isNotEmpty
)
{
if
(
params
.
containsKey
(
'/Resources'
))
{
final
res
=
params
[
'/Resources'
];
if
(
res
is
PdfDict
)
{
res
.
merge
(
resources
);
return
;
}
}
}
params
[
'/Resources'
]
=
resources
;
params
[
'/Resources'
]
=
resources
;
}
}
}
...
...
pdf/lib/src/pdf/obj/page_list.dart
View file @
605865f
...
...
@@ -23,7 +23,11 @@ import 'page.dart';
/// PdfPageList object
class
PdfPageList
extends
PdfObjectDict
{
/// This constructs a [PdfPageList] object.
PdfPageList
(
PdfDocument
pdfDocument
)
:
super
(
pdfDocument
,
type:
'/Pages'
);
PdfPageList
(
PdfDocument
pdfDocument
,
{
int
objgen
=
0
,
int
?
objser
,
})
:
super
(
pdfDocument
,
type:
'/Pages'
,
objgen:
objgen
,
objser:
objser
);
/// This holds the pages
final
pages
=
<
PdfPage
>[];
...
...
pdf/lib/src/pdf/obj/signature.dart
View file @
605865f
...
...
@@ -85,8 +85,8 @@ class PdfSignature extends PdfObjectDict {
int
output
(
PdfStream
s
)
{
value
.
preSign
(
this
,
params
);
_offsetStart
=
s
.
offset
+
'
$objser
$objgen
obj
\n
'
.
length
;
final
offset
=
super
.
output
(
s
);
_offsetStart
=
offset
+
'
$objser
$objgen
obj
\n
'
.
length
;
_offsetEnd
=
s
.
offset
;
return
offset
;
}
...
...
pdf/lib/src/priv.dart
View file @
605865f
...
...
@@ -29,5 +29,7 @@ export 'pdf/format/object_base.dart' hide DeflateCallback, PdfVersion;
export
'pdf/format/stream.dart'
;
export
'pdf/format/string.dart'
;
export
'pdf/format/xref.dart'
;
export
'pdf/obj/catalog.dart'
;
export
'pdf/obj/object.dart'
;
export
'pdf/obj/object_stream.dart'
;
export
'pdf/obj/page_list.dart'
;
...
...
pdf/lib/src/widgets/document.dart
View file @
605865f
...
...
@@ -67,7 +67,7 @@ class Document {
Document
.
load
(
PdfDocumentParserBase
parser
,
{
PdfPageMode
pageMode
=
PdfPageMode
.
none
,
@Deprecated
(
'Not used'
)
PdfPageMode
pageMode
=
PdfPageMode
.
none
,
DeflateCallback
?
deflate
,
bool
compress
=
true
,
bool
verbose
=
false
,
...
...
@@ -80,7 +80,6 @@ class Document {
String
?
producer
,
})
:
document
=
PdfDocument
.
load
(
parser
,
pageMode:
pageMode
,
deflate:
deflate
,
compress:
compress
,
verbose:
verbose
,
...
...
Please
register
or
login
to post a comment