Guillaume Ayoub
8ef8c39a03
Initial support of PNG emojis
...
Related to #1406 .
2021-08-29 19:34:28 +02:00
Guillaume Ayoub
64d04c47b6
Merge branch '53.x'
2021-08-27 22:01:02 +02:00
Guillaume Ayoub
228520d8e6
Handle cx and cy in SVG rotations
...
Fix #1430 .
2021-08-27 21:59:34 +02:00
Guillaume Ayoub
61ff7f0e1c
Handle full "display" property
...
In CSS Display Module Level 3, the "display" property gets a long
representation allowing:
- a clear separation between inner and outer display type,
- new supported types (contents, run-in, flow-root…),
- inline list items.
This commit allows the (retrocompatible) new long syntax for "display". It also
supports the "flow-root" value. It doesn’t support values related to ruby, and
it doesn’t support the new "contents" and "run-in" display types.
This work gives the possibility to simplify the code in the block_*_layout
functions, and to improve the overall layout.
Related to #36 .
2021-08-23 21:54:28 +02:00
Guillaume Ayoub
3aca9f1f84
Change the resume_at and skip_stack structure
...
Many operations, including page breaks, require a pointer to a specific
position of the box tree. For example, we used to have this structure to point
to the beginning of the first child of the second child:
(1, (2, None))
We now use:
{1: {2: None}}
This change is the first step to handle parallel flows (see #36 ). It doesn’t
change anything to the layout for now, but it allows us to store multiple
pointers in the same structure.
The next step is to handle multiple pointers in skip_stack during boxes layout.
It means that most of the *_layout() function need an extra for-loop to manage
multiple skip stacks.
We’ll then need to split new types of boxes: table cells, floats, absolutes…
2021-08-22 12:10:48 +02:00
Guillaume Ayoub
2e96bdee35
Simplify API to get intrinsic size of images
...
The previous API wasn’t stateless, as it sometimes required to call
get_intrinsic_size before accessing intrinsic_ratio. The new API offers a
single method to get width, height and ratio.
2021-08-03 18:39:14 +02:00
Guillaume Ayoub
783378d14a
Fix reference for percentages
2021-07-31 08:29:23 +02:00
Guillaume Ayoub
3e11acafb2
Include origin translation into matrix for patterns
2021-07-31 01:06:50 +02:00
Guillaume Ayoub
fd973a195a
Fix origin translation for SVG gradients
2021-07-31 00:57:47 +02:00
Guillaume Ayoub
f240bae0b8
Handle SVG image tags for images with no intrinsic size
2021-07-31 00:30:00 +02:00
Lucie Anglade
8c23e982e8
Preserve ration when drawing image in svg
2021-07-30 17:15:15 +02:00
Lucie Anglade
cd42c6cabf
Clip embedded svg
2021-07-30 16:42:00 +02:00
Lucie Anglade
11a175efc7
Handle x and y in use tags
2021-07-30 16:32:25 +02:00
Lucie Anglade
7f6e99bc58
Handle errors in points
2021-07-30 16:08:19 +02:00
Lucie Anglade
d80e99dd6c
Fix use tags referencing svg and symbols, new episode
2021-07-30 15:49:10 +02:00
Lucie Anglade
6de791a3a1
Fix use tags referencing svg and symbols
2021-07-30 15:42:51 +02:00
Lucie Anglade
603736407c
Do not crash when bounding box is unknown
2021-07-30 15:23:04 +02:00
Lucie Anglade
c104c8e099
Handle unit in dash array
2021-07-30 15:15:50 +02:00
Lucie Anglade
9bcece11fe
Fix blend mode
2021-07-30 15:12:06 +02:00
Guillaume Ayoub
5a53e11608
Clean and fix some cases of SVG gradients
2021-07-25 18:30:32 +02:00
Guillaume Ayoub
6417023f3d
Fix translation when viewBox’s origin is not 0,0
...
Related to #1400 .
2021-07-23 23:59:14 +02:00
Guillaume Ayoub
a5b9db5160
Merge pull request #1401 from pbregener/issue-1399
...
More robust handling of SVG use tags
2021-07-23 22:38:26 +02:00
Guillaume Ayoub
a0ad94b143
Don’t stroke when stroke-width is 0
...
Related to #1403 .
2021-07-23 22:36:05 +02:00
Guillaume Ayoub
8d7bcead0a
Fix how x and y attributes are handled
...
Fix #1403 .
2021-07-23 22:17:37 +02:00
pbregener
96daadf742
More robust handling of SVG use tags
...
Fixes #1399
2021-07-20 18:10:04 +02:00
Guillaume Ayoub
5fba476370
Test and fix text-anchor
2021-07-18 10:09:03 +02:00
Guillaume Ayoub
23b99475c2
Use "in" when possible
2021-07-18 10:08:50 +02:00
Guillaume Ayoub
c7b97fa3bf
Handle simple cases of clip-path
...
Fix #1374 .
2021-07-18 09:36:14 +02:00
Guillaume Ayoub
add1dad80b
Use named parameters for stream transformation
2021-07-17 14:25:58 +02:00
Guillaume Ayoub
a4cc61c7b8
Use matrix.values instead of indices
2021-07-17 13:46:46 +02:00
Guillaume Ayoub
e6be0fc47f
Fix text children
2021-07-16 15:17:15 +02:00
Guillaume Ayoub
cef8cf109d
Fix and simplify image size management
2021-07-12 15:07:31 +02:00
Guillaume Ayoub
231736d73e
Use the original SVG tree when drawing patterns
...
In Pattern, we want self.tree to be the pattern tree when we call draw(), but
we want self.tree to be the original SVG tree for everything else, like finding
defs.
This commit replaces self.tree with the original SVG tree after we call draw().
Fix #1394 .
2021-07-12 11:42:07 +02:00
Guillaume Ayoub
08f3a59d4f
Strip quotes from font names in SVG
...
Fix #1393 .
2021-07-12 10:54:11 +02:00
Guillaume Ayoub
c0c9879bc5
Handle stroke-opacity and fill-opacity
...
This commit also cleans a lot of things about the way opacity is handled,
with many small bug fixes.
Fix #1371 .
2021-06-02 20:35:06 +02:00
Guillaume Ayoub
41d4a262d3
Don’t copy the already-cascaded style when copying nodes
...
Fix #1370 .
2021-06-01 22:30:54 +02:00
Guillaume Ayoub
edf47f5311
Copy nodes when drawing them as use tags
...
Fix #1370 .
2021-06-01 22:11:11 +02:00
Guillaume Ayoub
6dde6cb5e9
Fix SVG transform order
...
Fix #1369 .
2021-05-31 22:37:18 +02:00
Guillaume Ayoub
451258a3ec
Don’t include stroke width in g bounding boxes
2021-05-30 19:09:04 +02:00
Guillaume Ayoub
0f8deb86a7
Include stroke width in bounding box
...
Fix #1367 .
2021-05-30 09:50:40 +02:00
Guillaume Ayoub
f17acdcd02
Rename SVG.paint
2021-05-30 09:50:30 +02:00
Guillaume Ayoub
bb8eea9066
Fix style attributes in SVG
...
Fix #1366 .
2021-05-27 16:36:34 +02:00
Guillaume Ayoub
41ab0f86e7
Cascade inherited attributes for use tags
...
Fix #1365 .
2021-05-27 12:04:41 +02:00
Guillaume Ayoub
a3028945fc
Handle visibility and display attributes
...
Fix #1362 .
2021-05-25 15:01:07 +02:00
Guillaume Ayoub
2d19becf19
Improve SVG support
2021-04-30 18:13:08 +02:00
Guillaume Ayoub
3818df4b96
Use a "more elegant way" to handle stroke-dasharray="none"
...
Related to #1346 .
2021-04-29 17:54:04 +02:00
Guillaume Ayoub
264246959b
Merge pull request #1346 from pbregener/svg-stroke-dasharray-none
...
SVG: Allow stroke-dasharray:none
2021-04-29 17:45:26 +02:00
Guillaume Ayoub
9f38063379
Use page coordinates when no bounding box is found for opacity
2021-04-29 16:52:00 +02:00
pbregener
06ef510ddf
SVG: Allow stroke-dasharray:none
...
Fixes a crash when a SVG contains
`style="stroke-dasharray:none"`
2021-04-29 11:42:46 +02:00
Guillaume Ayoub
26cc19ce16
Fix double x/y transform for use tags
...
Fix #1345 .
2021-04-28 21:57:15 +02:00
Guillaume Ayoub
6069fcd61a
Remove unused code
2021-04-26 18:03:59 +02:00
Guillaume Ayoub
51c673b343
Use almost the same code for gradients and patterns
2021-04-26 17:59:20 +02:00
Guillaume Ayoub
3ec32732aa
Fix gradients and tests
2021-04-26 17:36:18 +02:00
Guillaume Ayoub
3de9ff408d
Fix lint
2021-04-26 11:31:07 +02:00
Guillaume Ayoub
79bb88932c
Fix text rotation
2021-04-20 17:21:40 +02:00
Guillaume Ayoub
66f9720f9b
Allow strokes for text
2021-04-20 17:15:17 +02:00
Guillaume Ayoub
a4a5342bfb
Fix tspan
2021-04-20 17:05:05 +02:00
Guillaume Ayoub
b44bf650bd
Forget shapes that are not drawn
2021-04-20 16:53:21 +02:00
Guillaume Ayoub
82047b08e1
Fix text position
2021-04-20 16:44:31 +02:00
Guillaume Ayoub
dc861c785a
Add more tests for SVG images
2021-04-19 17:52:25 +02:00
Guillaume Ayoub
0c0367b2f2
Use "stream" instead of "context" when possible
...
We already have stacking contexts and layout contexts, there’s no need to use
"context" for "streams-with-context" too.
2021-04-18 18:50:11 +02:00
Guillaume Ayoub
4c56bb0851
Fix text position
2021-04-18 18:10:40 +02:00
Guillaume Ayoub
e00e027c9c
Fix SVG arcs
2021-04-18 18:01:56 +02:00
Guillaume Ayoub
3fc7273756
Test SVG bounding boxes
2021-04-18 17:20:07 +02:00
Guillaume Ayoub
541ed24472
Test SVG images
2021-04-18 16:01:26 +02:00
Guillaume Ayoub
0935813e75
Don’t handle text on a path
2021-04-17 18:30:18 +02:00
Guillaume Ayoub
6391139040
Add tests for text
2021-04-17 18:15:26 +02:00
Guillaume Ayoub
d503bab165
Handle alpha in fill and stroke colors
2021-04-17 12:30:40 +02:00
Guillaume Ayoub
54fa4f95f5
Fix bug in matrix transformation
2021-04-17 12:29:48 +02:00
Guillaume Ayoub
604ed6e99e
Try to handle gradientTransform
2021-04-16 15:33:04 +02:00
Guillaume Ayoub
84f945d396
Fix userSpaceOnUse for gradients
2021-04-16 11:21:46 +02:00
Guillaume Ayoub
ed1869f14e
Avoid negative radius for radial gradients
2021-04-15 17:52:18 +02:00
Guillaume Ayoub
31cb0d76f3
Fix pattern drawing
2021-04-14 21:31:08 +02:00
Guillaume Ayoub
66d2b4da3c
First SVG text test
2021-04-14 16:56:30 +02:00
Guillaume Ayoub
744ad9dff4
Call begin_text and end_text when drawing text in SVG
2021-04-14 16:56:30 +02:00
Guillaume Ayoub
36c076091a
Document and clean svg.utils
2021-04-12 17:19:46 +02:00
Guillaume Ayoub
087eae6ee0
Fix @import rules
2021-04-12 17:15:10 +02:00
Guillaume Ayoub
d29d22795a
Document and clean svg.text
2021-04-12 16:56:37 +02:00
Guillaume Ayoub
4fdde2188d
Comment and fix svg.shapes
2021-04-12 16:38:36 +02:00
Guillaume Ayoub
0756a0f424
Document and fix svg.path
2021-04-12 16:35:52 +02:00
Guillaume Ayoub
a425d1aa88
Document svg.image
2021-04-12 16:29:26 +02:00
Guillaume Ayoub
da2625f5a6
Document and comment svg.defs
2021-04-12 16:27:55 +02:00
Guillaume Ayoub
3aa34e2e0b
Document and comment svg.css
2021-04-12 15:49:06 +02:00
Guillaume Ayoub
ef9668ebf9
Use tinycss2.colors3 when possible
2021-04-12 15:21:43 +02:00
Guillaume Ayoub
75a422a70d
Clean and comment bounding box
2021-04-12 15:12:02 +02:00
Guillaume Ayoub
847ccc0a94
Comment draw_node
2021-04-12 14:32:57 +02:00
Guillaume Ayoub
bd2bc5cc7d
Fix text position
2021-04-12 14:30:30 +02:00
Guillaume Ayoub
a9144e582e
Clean and document svg.__init__
2021-04-12 14:25:55 +02:00
Guillaume Ayoub
c775ca6f46
Add bounding boxes for texts
2021-04-12 13:32:40 +02:00
Guillaume Ayoub
dd901bd8f6
Remove unused file
2021-04-11 16:15:36 +02:00
Guillaume Ayoub
0d8fb23145
Clean SVG support
2021-04-11 16:13:59 +02:00
Guillaume Ayoub
3a41d4e8a1
Initial support of text
2021-04-10 22:15:43 +02:00
Guillaume Ayoub
f52156ab0a
Fix x/y offsets with objectBoundingBox gradients
2021-04-05 15:45:20 +02:00
Guillaume Ayoub
8cbd0b0639
Handle masks, multiple fixes for gradients
2021-04-05 12:11:36 +02:00
Guillaume Ayoub
889e310bc1
Handle filters
2021-04-04 12:40:04 +02:00
Guillaume Ayoub
22b1a5ea1f
Fix ratio preservation
2021-04-02 18:34:40 +02:00
Guillaume Ayoub
d572de33b9
Handle opacity attribute
2021-03-31 15:28:17 +02:00
Guillaume Ayoub
5fb675e362
Fix svg tag size
2021-03-31 15:20:57 +02:00
Guillaume Ayoub
8fb5f86087
Draw patterns
2021-03-24 14:10:50 +01:00
Guillaume Ayoub
ed5a5f9a93
Render images
2021-03-23 16:22:41 +01:00
Guillaume Ayoub
2474f99ca9
Handle CSS for SVG
2021-03-23 15:06:33 +01:00
Guillaume Ayoub
abd69a6503
Fix preserved ratio when no viewbox is specified
2021-03-23 14:54:21 +01:00
Guillaume Ayoub
882681a99c
Preserve ratio for svg tags
2021-03-23 13:58:31 +01:00
Guillaume Ayoub
00e2557ee9
Handle radial gradients
2021-03-20 09:41:37 +01:00
Guillaume Ayoub
b7392374e2
Handle linear gradients
2021-03-19 15:58:22 +01:00
Guillaume Ayoub
5a66e68639
Use svg methods instead of size helper function
2021-03-17 21:30:35 +01:00
Guillaume Ayoub
97ace0dd8c
Initial broken support of use
2021-03-15 14:21:36 +01:00
Guillaume Ayoub
324f935e33
Handle markers
2021-03-14 09:29:33 +01:00
Guillaume Ayoub
561734e8ae
Make SVG tests pass again
2021-03-12 16:59:02 +01:00
Guillaume Ayoub
1fedbebd1b
Fix lint
2021-03-12 16:08:39 +01:00
Guillaume Ayoub
5d3460ac13
Parse definitions
2021-03-12 15:47:49 +01:00
Guillaume Ayoub
6e60615e41
Handle paths
2021-03-12 15:20:43 +01:00
Guillaume Ayoub
de9359ad46
Fix intrinsic sizes calculation
2021-03-12 15:20:20 +01:00
Guillaume Ayoub
43ec426f6b
Add all SVG shapes, inheritance and transformations
2021-03-07 20:34:24 +01:00
Guillaume Ayoub
9d300c1528
First SVG shapes
2021-03-07 18:00:38 +01:00