rsvg-convert: wrong output size, clips image
Issue Summary
When converting a SVG image I am getting the image clipped. The amount of clipping depends in the SVG contents.
I checked to my best of my abilities but keyword search didn't help. Really sorry if that exists already.
Example SVG
All SVG examples that are attached here are coming from firefox but I have verified similar behavior with Chrome generated SVGs.
The attached SVG below has dimensions 1912x848.
Running
rsvg-convert -b white --format png --output=test2_1.png test2_1.svg
we get the PNG below that has dimensions 1400x843. Notice the clipping.
With another SVG with again dimensions 1912x848 I am getting a PNG with dimensions 1896x833. Here is the second SVG.
Workaround
If I specify --page-width and --page-height equal with the width and height of the SVG then it works as expected. The output image has correct size and it is not clipped.
For example this command line it works as expected:
rsvg-convert -b white --page-height 848 --page-width 1912 --format png --output=test2_1_correct.png test2_1.svg
and the output file has the correct dimensions with no visible clipping.
Librsvg Version
rsvg-convert version 2.54.5
Platform
Debian unstable
me@home:~/src/rsvg-convert-bug$ dpkg -l '*librsvg*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=====================-=============-============-========================================================
ii librsvg2-2:amd64 2.54.5+dfsg-1 amd64 SAX-based renderer library for SVG files (runtime)
ii librsvg2-bin 2.54.5+dfsg-1 amd64 command-line utility to convert SVG files
ii librsvg2-common:amd64 2.54.5+dfsg-1 amd64 SAX-based renderer library for SVG files (extra runtime)
Additional logs
Weird, debug logs go to stdout instead of stderr.
me@home>SVG_LOG=1 rsvg-convert -b white --format png --output=test2_1.png test2_1.svg
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 43 } }, "cursor: context-menu;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 1, column: 45 } }, "pointer-events: all;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 1, column: 58 } }, "cursor: pointer;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 45 } }, "background-color: rgb(255, 255, 255);")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 78 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 13 } }, "user-select: none;")
Invalid declaration; ignoring: (ParseError { kind: Custom(UnknownProperty), location: SourceLocation { line: 0, column: 42 } }, "pointer-events: none;")