diff options
| author | Tavmjong Bah <tavmjong@free.fr> | 2015-05-29 11:15:32 +0000 |
|---|---|---|
| committer | tavmjong-free <tavmjong@free.fr> | 2015-05-29 11:15:32 +0000 |
| commit | 74b8a70899955af0a132a1eb38bbe16b40110c73 (patch) | |
| tree | 901139209fbceba529312ad4927696db2610e224 /src/extension/internal/pdfinput/pdf-input.cpp | |
| parent | clean up a couple of clang warnings (diff) | |
| download | inkscape-74b8a70899955af0a132a1eb38bbe16b40110c73.tar.gz inkscape-74b8a70899955af0a132a1eb38bbe16b40110c73.zip | |
Use more fine-grain fallbacks for Poppler/Cairo PDF imports.
(bzr r14184)
Diffstat (limited to 'src/extension/internal/pdfinput/pdf-input.cpp')
| -rw-r--r-- | src/extension/internal/pdfinput/pdf-input.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp index 1cd409a0a..363061734 100644 --- a/src/extension/internal/pdfinput/pdf-input.cpp +++ b/src/extension/internal/pdfinput/pdf-input.cpp @@ -881,6 +881,13 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/, const gchar * uri) { Glib::ustring output; cairo_surface_t* surface = cairo_svg_surface_create_for_stream(Inkscape::Extension::Internal::_write_ustring_cb, &output, width, height); + + // This magical function results in more fine-grain fallbacks. In particular, a mesh + // gradient won't necessarily result in the whole PDF being rasterized. Of course, SVG + // 1.2 never made it as a standard, but hey, we'll take what we can get. This trick was + // found by examining the 'pdftocairo' code. + cairo_svg_surface_restrict_to_version( surface, CAIRO_SVG_VERSION_1_2 ); + cairo_t* cr = cairo_create(surface); poppler_page_render_for_printing(page, cr); |
