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-04-24 18:43:40 -0400
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
bca854f6defe6f7f9a05947515d6ca9177a0a40f
bca854f6
1 parent
a9fcde31
Implement Shading objects
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
133 additions
and
1 deletions
pdf/lib/pdf.dart
pdf/lib/src/function.dart
pdf/lib/src/graphics.dart
pdf/lib/src/image.dart
pdf/lib/src/page.dart
pdf/lib/src/shading.dart
pdf/lib/pdf.dart
View file @
bca854f
...
...
@@ -46,6 +46,7 @@ part 'src/font.dart';
part
'src/font_descriptor.dart'
;
part
'src/font_metrics.dart'
;
part
'src/formxobject.dart'
;
part
'src/function.dart'
;
part
'src/graphic_state.dart'
;
part
'src/graphics.dart'
;
part
'src/image.dart'
;
...
...
@@ -60,6 +61,7 @@ part 'src/page_format.dart';
part
'src/page_list.dart'
;
part
'src/point.dart'
;
part
'src/rect.dart'
;
part
'src/shading.dart'
;
part
'src/signature.dart'
;
part
'src/stream.dart'
;
part
'src/ttf_parser.dart'
;
...
...
pdf/lib/src/function.dart
0 → 100644
View file @
bca854f
/*
* 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
part of
pdf
;
class
PdfFunction
extends
PdfObjectStream
{
PdfFunction
(
PdfDocument
pdfDocument
,
{
this
.
colors
,
})
:
super
(
pdfDocument
);
final
List
<
PdfColor
>
colors
;
@override
void
_prepare
()
{
for
(
final
PdfColor
color
in
colors
)
{
buf
.
putBytes
(<
int
>[
(
color
.
red
*
255.0
).
round
()
&
0xff
,
(
color
.
green
*
255.0
).
round
()
&
0xff
,
(
color
.
blue
*
255.0
).
round
()
&
0xff
,
]);
}
super
.
_prepare
();
params
[
'/FunctionType'
]
=
const
PdfNum
(
0
);
params
[
'/BitsPerSample'
]
=
const
PdfNum
(
8
);
params
[
'/Order'
]
=
const
PdfNum
(
3
);
params
[
'/Domain'
]
=
PdfArray
.
fromNum
(
const
<
num
>[
0
,
1
]);
params
[
'/Range'
]
=
PdfArray
.
fromNum
(
const
<
num
>[
0
,
1
,
0
,
1
,
0
,
1
]);
params
[
'/Size'
]
=
PdfNum
(
colors
.
length
);
}
}
...
...
pdf/lib/src/graphics.dart
View file @
bca854f
...
...
@@ -94,6 +94,13 @@ class PdfGraphics {
buf
.
putString
(
'W n
\n
'
);
}
/// Apply a shader
void
applyShader
(
PdfShading
shader
)
{
// The shader needs to be registered in the page resources
page
.
shading
[
shader
.
name
]
=
shader
;
buf
.
putString
(
'
${shader.name}
sh
\n
'
);
}
/// This releases any resources used by this Graphics object. You must use
/// this method once finished with it.
///
...
...
pdf/lib/src/image.dart
View file @
bca854f
...
...
@@ -199,5 +199,5 @@ class PdfImage extends PdfXObject {
final
PdfImageOrientation
orientation
;
/// Name of the image
String
get
name
=>
'/I
mage
$objser
'
;
String
get
name
=>
'/I
$objser
'
;
}
...
...
pdf/lib/src/page.dart
View file @
bca854f
...
...
@@ -59,6 +59,9 @@ class PdfPage extends PdfObject {
/// The fonts associated with this page
final
Map
<
String
,
PdfFont
>
fonts
=
<
String
,
PdfFont
>{};
/// The fonts associated with this page
final
Map
<
String
,
PdfShading
>
shading
=
<
String
,
PdfShading
>{};
/// The xobjects or other images in the pdf
final
Map
<
String
,
PdfXObject
>
xObjects
=
<
String
,
PdfXObject
>{};
...
...
@@ -117,11 +120,23 @@ class PdfPage extends PdfObject {
/// This holds any resources for this page
final
PdfDict
resources
=
PdfDict
();
resources
[
'/ProcSet'
]
=
PdfArray
(
const
<
PdfName
>[
PdfName
(
'/PDF'
),
PdfName
(
'/Text'
),
PdfName
(
'/ImageB'
),
PdfName
(
'/ImageC'
),
]);
// fonts
if
(
fonts
.
isNotEmpty
)
{
resources
[
'/Font'
]
=
PdfDict
.
fromObjectMap
(
fonts
);
}
// shading
if
(
shading
.
isNotEmpty
)
{
resources
[
'/Shading'
]
=
PdfDict
.
fromObjectMap
(
shading
);
}
// Now the XObjects
if
(
xObjects
.
isNotEmpty
)
{
resources
[
'/XObject'
]
=
PdfDict
.
fromObjectMap
(
xObjects
);
...
...
pdf/lib/src/shading.dart
0 → 100644
View file @
bca854f
/*
* 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
part of
pdf
;
enum
PdfShadingType
{
function
,
axial
,
radial
}
class
PdfShading
extends
PdfObject
{
PdfShading
(
PdfDocument
pdfDocument
,
{
@required
this
.
shadingType
,
@required
this
.
function
,
@required
this
.
start
,
@required
this
.
end
,
})
:
assert
(
shadingType
!=
null
),
assert
(
function
!=
null
),
assert
(
start
!=
null
),
assert
(
end
!=
null
),
super
(
pdfDocument
);
/// Name of the Shading object
String
get
name
=>
'/S
$objser
'
;
final
PdfShadingType
shadingType
;
final
PdfFunction
function
;
final
PdfPoint
start
;
final
PdfPoint
end
;
@override
void
_prepare
()
{
super
.
_prepare
();
params
[
'/ShadingType'
]
=
PdfNum
(
shadingType
.
index
+
1
);
params
[
'/AntiAlias'
]
=
const
PdfBool
(
true
);
params
[
'/ColorSpace'
]
=
const
PdfName
(
'/DeviceRGB'
);
params
[
'/Coords'
]
=
PdfArray
.
fromNum
(<
double
>[
start
.
x
,
start
.
y
,
end
.
x
,
end
.
y
]);
params
[
'/Domain'
]
=
PdfArray
.
fromNum
(<
num
>[
0
,
1
]);
params
[
'/Extend'
]
=
PdfArray
(
const
<
PdfBool
>[
PdfBool
(
true
),
PdfBool
(
true
)]);
params
[
'/Function'
]
=
function
.
ref
();
}
}
...
...
Please
register
or
login
to post a comment