Skip to content

Commit cfa8790

Browse files
committed
fix(svg): normalize form xobject matrix for correct logo rendering
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent 33a855a commit cfa8790

2 files changed

Lines changed: 3 additions & 0 deletions

File tree

src/Pdf/Svg/SvgPdfXObjectFactory.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ public function create(string $svgContents, string $source): EmbeddedPdfImage
7979
'Subtype' => '/Form',
8080
'FormType' => 1,
8181
'BBox' => [0.0, 0.0, $width, $height],
82+
'Matrix' => [1.0 / $width, 0.0, 0.0, 1.0 / $height, 0.0, 0.0],
8283
],
8384
stream: implode("\n", $commands),
8485
);

tests/Unit/Pdf/Svg/SvgPdfXObjectFactoryTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public function testCreateBuildsFormXObjectFromPathBasedSvg(): void
3535
self::assertSame('/Form', $xObject->dictionary['Subtype']);
3636
self::assertSame(1, $xObject->dictionary['FormType']);
3737
self::assertSame([0.0, 0.0, 10.0, 8.0], $xObject->dictionary['BBox']);
38+
self::assertSame([0.1, 0.0, 0.0, 0.125, 0.0, 0.0], $xObject->dictionary['Matrix']);
3839
self::assertStringContainsString('0.0667 0.1333 0.2 rg', $xObject->stream);
3940
self::assertStringContainsString('0.000000 8.000000 m', $xObject->stream);
4041
self::assertStringContainsString('10.000000 0.000000 l', $xObject->stream);
@@ -57,6 +58,7 @@ public function testCreateSupportsPolygonAndRectElements(): void
5758
);
5859

5960
self::assertSame([0.0, 0.0, 20.0, 20.0], $xObject->dictionary['BBox']);
61+
self::assertSame([0.05, 0.0, 0.0, 0.05, 0.0, 0.0], $xObject->dictionary['Matrix']);
6062
self::assertStringContainsString('1 0 0 rg', $xObject->stream);
6163
self::assertStringContainsString('0.000000 20.000000 m', $xObject->stream);
6264
self::assertStringContainsString('0 1 0 rg', $xObject->stream);

0 commit comments

Comments
 (0)