What does pdftocairo -svg or pdf2svg produce for text, gradients, blend modes and clipping, based on poppler 26.10.0 and cairo 1.18.6 source?
pdftocairo -svg and pdf2svg both render PDF pages through poppler onto cairo's SVG surface. pdftocairo restricts output to SVG 1.2 in points, while pdf2svg takes cairo's defaults. Cairo's SVG surface rejects saturate and the overlay, dodge/burn, hard/soft light, difference, exclusion and HSL operators ('SVG 1.1 does not support these operators'), so content using those blend modes goes through cairo's fallback path. Solid-colour text becomes <use> references to glyph definitions rather than <text>, and non-solid text falls back. Poppler ignores the isolated flag of transparency groups.
pdftocairo -svg and pdf2svg both render PDF pages through poppler onto cairo's SVG surface. pdftocairo restricts output to SVG 1.2 in points, while pdf2svg takes cairo's defaults. Cairo's SVG surface rejects saturate and the overlay, dodge/burn, hard/soft light, difference, exclusion and HSL operators ('SVG 1.1 does not support these operators'), so content using those blend modes goes through cairo's fallback path. Solid-colour text becomes <use> references to glyph definitions rather than <text>, and non-solid text falls back. Poppler ignores the isolated flag of transparency groups.
Curator qualifications: Code read 2026-10-22; no PDF converted. Fallback output form (likely rasterised regions) not traced; pattern limits beyond operators carried from producer reading.
Limitations: Code read 2026-10-22; no PDF converted.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://gitlab.freedesktop.org/poppler/poppler/-/blob/2703be11769c1f86f4d0dc3b276ec94bba5ac6d3/utils/pdftocairo.1",
"note": "poppler utils/pdftocairo.cc L620-624; pdf2svg.c L66; cairo src/cairo-svg-surface.c L409-413, L1565-1592, L3997-4083; poppler poppler/CairoOutputDev.cc L2129-2136"
},
{
"url": "https://gitlab.freedesktop.org/poppler/poppler/-/blob/2703be11769c1f86f4d0dc3b276ec94bba5ac6d3/utils/pdftocairo.cc",
"note": "poppler utils/pdftocairo.cc L620-624; pdf2svg.c L66; cairo src/cairo-svg-surface.c L409-413, L1565-1592, L3997-4083; poppler poppler/CairoOutputDev.cc L2129-2136"
},
{
"url": "https://gitlab.freedesktop.org/poppler/poppler/-/blob/2703be11769c1f86f4d0dc3b276ec94bba5ac6d3/poppler/CairoOutputDev.cc",
"note": "poppler utils/pdftocairo.cc L620-624; pdf2svg.c L66; cairo src/cairo-svg-surface.c L409-413, L1565-1592, L3997-4083; poppler poppler/CairoOutputDev.cc L2129-2136"
},
{
"url": "https://github.com/dawbarton/pdf2svg/blob/2371ca32926354227f58ce6cab18a7bd54136252/pdf2svg.c",
"note": "poppler utils/pdftocairo.cc L620-624; pdf2svg.c L66; cairo src/cairo-svg-surface.c L409-413, L1565-1592, L3997-4083; poppler poppler/CairoOutputDev.cc L2129-2136"
},
{
"url": "https://github.com/dawbarton/pdf2svg/blob/2371ca32926354227f58ce6cab18a7bd54136252/README.md",
"note": "poppler utils/pdftocairo.cc L620-624; pdf2svg.c L66; cairo src/cairo-svg-surface.c L409-413, L1565-1592, L3997-4083; poppler poppler/CairoOutputDev.cc L2129-2136"
},
{
"url": "https://gitlab.freedesktop.org/cairo/cairo/-/blob/018b3424a10ecd37450360f21454ecf0f3007e17/src/cairo-svg-surface.c",
"note": "poppler utils/pdftocairo.cc L620-624; pdf2svg.c L66; cairo src/cairo-svg-surface.c L409-413, L1565-1592, L3997-4083; poppler poppler/CairoOutputDev.cc L2129-2136"
}
]
}Evidence claims
- [sourced_fact] pdftocairo -svg and pdf2svg both render PDF pages through poppler onto cairo's SVG surface. pdftocairo restricts output to SVG 1.2 in points, while pdf2svg takes cairo's defaults. Cairo's SVG surface rejects saturate and the overlay, dodge/burn, hard/soft light, difference, exclusion and HSL operators ('SVG 1.1 does not support these operators'), so content using those blend modes goes through cairo's fallback path. Solid-colour text becomes <use> references to glyph definitions rather than <text>, and non-solid text falls back. Poppler ignores the isolated flag of transparency groups. · locator: poppler utils/pdftocairo.cc L620-624; pdf2svg.c L66; cairo src/cairo-svg-surface.c L409-413, L1565-1592, L3997-4083; poppler poppler/CairoOutputDev.cc L2129-2136 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://github.com/dawbarton/pdf2svg/blob/2371ca32926354227f58ce6cab18a7bd54136252/README.md
- cites → https://github.com/dawbarton/pdf2svg/blob/2371ca32926354227f58ce6cab18a7bd54136252/pdf2svg.c
- cites → https://gitlab.freedesktop.org/cairo/cairo/-/blob/018b3424a10ecd37450360f21454ecf0f3007e17/src/cairo-svg-surface.c
- cites → https://gitlab.freedesktop.org/poppler/poppler/-/blob/2703be11769c1f86f4d0dc3b276ec94bba5ac6d3/poppler/CairoOutputDev.cc
- cites → https://gitlab.freedesktop.org/poppler/poppler/-/blob/2703be11769c1f86f4d0dc3b276ec94bba5ac6d3/utils/pdftocairo.1
- cites → https://gitlab.freedesktop.org/poppler/poppler/-/blob/2703be11769c1f86f4d0dc3b276ec94bba5ac6d3/utils/pdftocairo.cc