From e362cec58fb273941e3aea562ba042e2e9b95c98 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 24 May 2015 13:11:43 +0200 Subject: Respect PDF image 'interpolate' value on import. (bzr r14171) --- src/extension/internal/pdfinput/svg-builder.cpp | 36 ++++++++++++++++--------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'src/extension/internal/pdfinput/svg-builder.cpp') diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp index a3abb4045..58e2030d9 100644 --- a/src/extension/internal/pdfinput/svg-builder.cpp +++ b/src/extension/internal/pdfinput/svg-builder.cpp @@ -1485,7 +1485,9 @@ void png_flush_base64stream(png_structp png_ptr) * */ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height, - GfxImageColorMap *color_map, int *mask_colors, bool alpha_only, bool invert_alpha) { + GfxImageColorMap *color_map, bool interpolate, + int *mask_colors, bool alpha_only, + bool invert_alpha) { // Create PNG write struct png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); @@ -1655,6 +1657,13 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height Inkscape::XML::Node *image_node = _xml_doc->createElement("svg:image"); sp_repr_set_svg_double(image_node, "width", 1); sp_repr_set_svg_double(image_node, "height", 1); + if( !interpolate ) { + SPCSSAttr *css = sp_repr_css_attr_new(); + // This should be changed after CSS4 Images widely supported. + sp_repr_css_set_property(css, "image-rendering", "optimizeSpeed"); + sp_repr_css_change(image_node, css, "style"); + sp_repr_css_attr_unref(css); + } // PS/PDF images are placed via a transformation matrix, no preserveAspectRatio used image_node->setAttribute("preserveAspectRatio", "none"); @@ -1715,9 +1724,9 @@ Inkscape::XML::Node *SvgBuilder::_createMask(double width, double height) { } void SvgBuilder::addImage(GfxState * /*state*/, Stream *str, int width, int height, - GfxImageColorMap *color_map, int *mask_colors) { + GfxImageColorMap *color_map, bool interpolate, int *mask_colors) { - Inkscape::XML::Node *image_node = _createImage(str, width, height, color_map, mask_colors); + Inkscape::XML::Node *image_node = _createImage(str, width, height, color_map, interpolate, mask_colors); if (image_node) { _container->appendChild(image_node); Inkscape::GC::release(image_node); @@ -1725,7 +1734,7 @@ void SvgBuilder::addImage(GfxState * /*state*/, Stream *str, int width, int heig } void SvgBuilder::addImageMask(GfxState *state, Stream *str, int width, int height, - bool invert) { + bool invert, bool interpolate) { // Create a rectangle Inkscape::XML::Node *rect = _xml_doc->createElement("svg:rect"); @@ -1742,7 +1751,8 @@ void SvgBuilder::addImageMask(GfxState *state, Stream *str, int width, int heigh // Scaling 1x1 surfaces might not work so skip setting a mask with this size if ( width > 1 || height > 1 ) { - Inkscape::XML::Node *mask_image_node = _createImage(str, width, height, NULL, NULL, true, invert); + Inkscape::XML::Node *mask_image_node = + _createImage(str, width, height, NULL, interpolate, NULL, true, invert); if (mask_image_node) { // Create the mask Inkscape::XML::Node *mask_node = _createMask(1.0, 1.0); @@ -1762,13 +1772,13 @@ void SvgBuilder::addImageMask(GfxState *state, Stream *str, int width, int heigh } void SvgBuilder::addMaskedImage(GfxState * /*state*/, Stream *str, int width, int height, - GfxImageColorMap *color_map, + GfxImageColorMap *color_map, bool interpolate, Stream *mask_str, int mask_width, int mask_height, - bool invert_mask) { + bool invert_mask, bool mask_interpolate) { Inkscape::XML::Node *mask_image_node = _createImage(mask_str, mask_width, mask_height, - NULL, NULL, true, invert_mask); - Inkscape::XML::Node *image_node = _createImage(str, width, height, color_map, NULL); + NULL, mask_interpolate, NULL, true, invert_mask); + Inkscape::XML::Node *image_node = _createImage(str, width, height, color_map, interpolate, NULL); if ( mask_image_node && image_node ) { // Create mask for the image Inkscape::XML::Node *mask_node = _createMask(1.0, 1.0); @@ -1795,13 +1805,13 @@ void SvgBuilder::addMaskedImage(GfxState * /*state*/, Stream *str, int width, in } void SvgBuilder::addSoftMaskedImage(GfxState * /*state*/, Stream *str, int width, int height, - GfxImageColorMap *color_map, + GfxImageColorMap *color_map, bool interpolate, Stream *mask_str, int mask_width, int mask_height, - GfxImageColorMap *mask_color_map) { + GfxImageColorMap *mask_color_map, bool mask_interpolate) { Inkscape::XML::Node *mask_image_node = _createImage(mask_str, mask_width, mask_height, - mask_color_map, NULL, true); - Inkscape::XML::Node *image_node = _createImage(str, width, height, color_map, NULL); + mask_color_map, mask_interpolate, NULL, true); + Inkscape::XML::Node *image_node = _createImage(str, width, height, color_map, interpolate, NULL); if ( mask_image_node && image_node ) { // Create mask for the image Inkscape::XML::Node *mask_node = _createMask(1.0, 1.0); -- cgit v1.2.3 From ebcbea982c7b7dce6a5d3641e3a5d3a556b4d69f Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 27 May 2015 22:02:55 +0200 Subject: Add 'font-variant-xxx' to properties that should not be set on non-text elements. (bzr r14179) --- src/extension/internal/pdfinput/svg-builder.cpp | 132 ++++++++++++++++++++++-- 1 file changed, 124 insertions(+), 8 deletions(-) (limited to 'src/extension/internal/pdfinput/svg-builder.cpp') diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp index 58e2030d9..f104316a7 100644 --- a/src/extension/internal/pdfinput/svg-builder.cpp +++ b/src/extension/internal/pdfinput/svg-builder.cpp @@ -461,9 +461,17 @@ void SvgBuilder::addPath(GfxState *state, bool fill, bool stroke, bool even_odd) void SvgBuilder::addShadedFill(GfxShading *shading, double *matrix, GfxPath *path, bool even_odd) { + std::cout << "SvgBuilder::addShadedFill: " << shading->getType() << std::endl; Inkscape::XML::Node *path_node = _xml_doc->createElement("svg:path"); gchar *pathtext = svgInterpretPath(path); path_node->setAttribute("d", pathtext); + if ( shading->getType() == 6 || shading->getType() == 7) { + path_node->setAttribute("id", "MyMesh"); + std::cout << " pathtext: " << (pathtext?pathtext:"null") << std::endl; + std::cout << " " << path_node->name() << std::endl; + //g_free(pathtext); + //return; + } g_free(pathtext); // Set style @@ -601,7 +609,9 @@ bool SvgBuilder::isPatternTypeSupported(GfxPattern *pattern) { GfxShading *shading = (static_cast(pattern))->getShading(); int shadingType = shading->getType(); if ( shadingType == 2 || // axial shading - shadingType == 3 ) { // radial shading + shadingType == 3 || // radial shading + shadingType == 6 || // Coons patch + shadingType == 7) { // Tensor patch return true; } return false; @@ -782,6 +792,110 @@ gchar *SvgBuilder::_createGradient(GfxShading *shading, double *matrix, bool for extend1 = radial_shading->getExtend1(); num_funcs = radial_shading->getNFuncs(); func = radial_shading->getFunc(0); + } else if (shading->getType() == 6 || shading->getType() == 7) { // Mesh shading + GfxPatchMeshShading *mesh_shading = static_cast(shading); + std::cout << "SVGBuilder::_createGradient: Number of patches: " + << mesh_shading->getNPatches() << std::endl; + for( unsigned i=0; i < mesh_shading->getNPatches(); ++i ) { + GfxPatch *patch = mesh_shading->getPatch(i); + + std::cout << " Patch: " << i << " " + << "(" << patch->x[0][0] << "," << patch->y[0][0] << ") " + << "(" << patch->x[3][0] << "," << patch->y[3][0] << ") " + << "(" << patch->x[3][3] << "," << patch->y[3][3] << ") " + << "(" << patch->x[0][3] << "," << patch->y[0][3] << ") " + << std::endl; + if (i > 0 ) continue; // We can't handle multiple meshes + std::cout << " Creating mesh" << std::endl; + // Mesh + gradient = _xml_doc->createElement("svg:mesh"); + sp_repr_set_svg_double(gradient, "x", patch->x[0][0]); + sp_repr_set_svg_double(gradient, "y", patch->y[0][0]); + + std::cout << " Creating mesh row" << std::endl; + // Mesh Row + Inkscape::XML::Node *meshrow = _xml_doc->createElement("svg:meshrow"); + + std::cout << " Creating mesh patch" << std::endl; + // Mesh Patch + Inkscape::XML::Node *meshpatch = _xml_doc->createElement("svg:meshpatch"); + + std::cout << " Creating stops" << std::endl; + // Mesh Stops + Inkscape::XML::Node *stop0 = _xml_doc->createElement("svg:stop"); + Inkscape::XML::Node *stop1 = _xml_doc->createElement("svg:stop"); + Inkscape::XML::Node *stop2 = _xml_doc->createElement("svg:stop"); + Inkscape::XML::Node *stop3 = _xml_doc->createElement("svg:stop"); + Inkscape::SVG::PathString pathString0; + Inkscape::SVG::PathString pathString1; + Inkscape::SVG::PathString pathString2; + Inkscape::SVG::PathString pathString3; + pathString0.curveTo(patch->x[1][0]-patch->x[0][0], patch->y[1][0]-patch->y[0][0], + patch->x[2][0]-patch->x[0][0], patch->y[2][0]-patch->y[0][0], + patch->x[3][0]-patch->x[0][0], patch->y[3][0]-patch->y[0][0]); + pathString1.curveTo(patch->x[3][1]-patch->x[3][0], patch->y[3][1]-patch->y[3][0], + patch->x[3][2]-patch->x[3][0], patch->y[3][2]-patch->y[3][0], + patch->x[3][3]-patch->x[3][0], patch->y[3][3]-patch->y[3][0]); + pathString2.curveTo(patch->x[2][3]-patch->x[3][3], patch->y[2][3]-patch->y[3][3], + patch->x[1][3]-patch->x[3][3], patch->y[1][3]-patch->y[3][3], + patch->x[0][3]-patch->x[3][3], patch->y[0][3]-patch->y[3][3]); + pathString3.curveTo(patch->x[0][2]-patch->x[0][3], patch->y[0][2]-patch->y[0][3], + patch->x[0][1]-patch->x[0][3], patch->y[0][1]-patch->y[0][3], + patch->x[0][0]-patch->x[0][3], patch->y[0][0]-patch->y[0][3]); + std::cout << " path0: " << pathString0.c_str() << std::endl; + std::cout << " path1: " << pathString1.c_str() << std::endl; + std::cout << " path2: " << pathString2.c_str() << std::endl; + std::cout << " path3: " << pathString3.c_str() << std::endl; + stop0->setAttribute("path", pathString0.c_str()); + stop1->setAttribute("path", pathString1.c_str()); + stop2->setAttribute("path", pathString2.c_str()); + stop3->setAttribute("path", pathString3.c_str()); + SPCSSAttr *css0 = sp_repr_css_attr_new(); + SPCSSAttr *css1 = sp_repr_css_attr_new(); + SPCSSAttr *css2 = sp_repr_css_attr_new(); + SPCSSAttr *css3 = sp_repr_css_attr_new(); + // See comment in GfxState.h if there is more than one patch. + //gchar *color_text0 = svgConvertGfxRGB(patch->color[0][0]); + //gchar *color_text1 = svgConvertGfxRGB(patch->color[1][0]); + //gchar *color_text2 = svgConvertGfxRGB(patch->color[1][1]); + //gchar *color_text3 = svgConvertGfxRGB(patch->color[0][1]); + //sp_repr_css_set_property(css0, "stop-color", color_text0); + //sp_repr_css_set_property(css1, "stop-color", color_text1); + //sp_repr_css_set_property(css2, "stop-color", color_text2); + //sp_repr_css_set_property(css3, "stop-color", color_text3); + sp_repr_css_set_property(css0, "stop-color", "#ff0000"); + sp_repr_css_set_property(css1, "stop-color", "#0000ff"); + sp_repr_css_set_property(css2, "stop-color", "#00ff00"); + sp_repr_css_set_property(css3, "stop-color", "#ff00ff"); + sp_repr_css_set_property(css0, "stop-opacity", "1"); + sp_repr_css_set_property(css1, "stop-opacity", "1"); + sp_repr_css_set_property(css2, "stop-opacity", "1"); + sp_repr_css_set_property(css3, "stop-opacity", "1"); + sp_repr_css_change(stop0, css0, "style"); + sp_repr_css_change(stop1, css1, "style"); + sp_repr_css_change(stop2, css2, "style"); + sp_repr_css_change(stop3, css3, "style"); + sp_repr_css_attr_unref(css0); + sp_repr_css_attr_unref(css1); + sp_repr_css_attr_unref(css2); + sp_repr_css_attr_unref(css3); + + // Put them into document. + meshpatch->appendChild(stop0); + meshpatch->appendChild(stop1); + meshpatch->appendChild(stop2); + meshpatch->appendChild(stop3); + meshrow->appendChild(meshpatch); + gradient->appendChild(meshrow); + + Inkscape::GC::release(meshpatch); + Inkscape::GC::release(meshrow); + Inkscape::GC::release(stop0); + Inkscape::GC::release(stop1); + Inkscape::GC::release(stop2); + Inkscape::GC::release(stop3); + std::cout << " exit" << std::endl; + } } else { // Unsupported shading type return NULL; } @@ -799,20 +913,21 @@ gchar *SvgBuilder::_createGradient(GfxShading *shading, double *matrix, bool for g_free(transform_text); } - if ( extend0 && extend1 ) { - gradient->setAttribute("spreadMethod", "pad"); - } + // if ( extend0 && extend1 ) { + // gradient->setAttribute("spreadMethod", "pad"); + // } - if ( num_funcs > 1 || !_addGradientStops(gradient, shading, func) ) { - Inkscape::GC::release(gradient); - return NULL; - } + // if ( num_funcs > 1 || !_addGradientStops(gradient, shading, func) ) { + // Inkscape::GC::release(gradient); + // return NULL; + // } Inkscape::XML::Node *defs = _doc->getDefs()->getRepr(); defs->appendChild(gradient); gchar *id = g_strdup(gradient->attribute("id")); Inkscape::GC::release(gradient); + std::cout << " Exit: " << id << std::endl; return id; } @@ -1414,6 +1529,7 @@ void SvgBuilder::addChar(GfxState *state, double x, double y, } gchar *tmp = g_utf16_to_utf8(uu, uLen, NULL, NULL, NULL); + // std::cout << "tmp: " << (tmp?tmp:"null") << std::endl; if ( tmp && *tmp ) { new_glyph.code = tmp; } else { -- cgit v1.2.3 From 158e9e378bd4875a27b57883d3f75415fb119e01 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 27 May 2015 22:31:43 +0200 Subject: Revert unintended changes. (bzr r14181) --- src/extension/internal/pdfinput/svg-builder.cpp | 132 ++---------------------- 1 file changed, 8 insertions(+), 124 deletions(-) (limited to 'src/extension/internal/pdfinput/svg-builder.cpp') diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp index f104316a7..58e2030d9 100644 --- a/src/extension/internal/pdfinput/svg-builder.cpp +++ b/src/extension/internal/pdfinput/svg-builder.cpp @@ -461,17 +461,9 @@ void SvgBuilder::addPath(GfxState *state, bool fill, bool stroke, bool even_odd) void SvgBuilder::addShadedFill(GfxShading *shading, double *matrix, GfxPath *path, bool even_odd) { - std::cout << "SvgBuilder::addShadedFill: " << shading->getType() << std::endl; Inkscape::XML::Node *path_node = _xml_doc->createElement("svg:path"); gchar *pathtext = svgInterpretPath(path); path_node->setAttribute("d", pathtext); - if ( shading->getType() == 6 || shading->getType() == 7) { - path_node->setAttribute("id", "MyMesh"); - std::cout << " pathtext: " << (pathtext?pathtext:"null") << std::endl; - std::cout << " " << path_node->name() << std::endl; - //g_free(pathtext); - //return; - } g_free(pathtext); // Set style @@ -609,9 +601,7 @@ bool SvgBuilder::isPatternTypeSupported(GfxPattern *pattern) { GfxShading *shading = (static_cast(pattern))->getShading(); int shadingType = shading->getType(); if ( shadingType == 2 || // axial shading - shadingType == 3 || // radial shading - shadingType == 6 || // Coons patch - shadingType == 7) { // Tensor patch + shadingType == 3 ) { // radial shading return true; } return false; @@ -792,110 +782,6 @@ gchar *SvgBuilder::_createGradient(GfxShading *shading, double *matrix, bool for extend1 = radial_shading->getExtend1(); num_funcs = radial_shading->getNFuncs(); func = radial_shading->getFunc(0); - } else if (shading->getType() == 6 || shading->getType() == 7) { // Mesh shading - GfxPatchMeshShading *mesh_shading = static_cast(shading); - std::cout << "SVGBuilder::_createGradient: Number of patches: " - << mesh_shading->getNPatches() << std::endl; - for( unsigned i=0; i < mesh_shading->getNPatches(); ++i ) { - GfxPatch *patch = mesh_shading->getPatch(i); - - std::cout << " Patch: " << i << " " - << "(" << patch->x[0][0] << "," << patch->y[0][0] << ") " - << "(" << patch->x[3][0] << "," << patch->y[3][0] << ") " - << "(" << patch->x[3][3] << "," << patch->y[3][3] << ") " - << "(" << patch->x[0][3] << "," << patch->y[0][3] << ") " - << std::endl; - if (i > 0 ) continue; // We can't handle multiple meshes - std::cout << " Creating mesh" << std::endl; - // Mesh - gradient = _xml_doc->createElement("svg:mesh"); - sp_repr_set_svg_double(gradient, "x", patch->x[0][0]); - sp_repr_set_svg_double(gradient, "y", patch->y[0][0]); - - std::cout << " Creating mesh row" << std::endl; - // Mesh Row - Inkscape::XML::Node *meshrow = _xml_doc->createElement("svg:meshrow"); - - std::cout << " Creating mesh patch" << std::endl; - // Mesh Patch - Inkscape::XML::Node *meshpatch = _xml_doc->createElement("svg:meshpatch"); - - std::cout << " Creating stops" << std::endl; - // Mesh Stops - Inkscape::XML::Node *stop0 = _xml_doc->createElement("svg:stop"); - Inkscape::XML::Node *stop1 = _xml_doc->createElement("svg:stop"); - Inkscape::XML::Node *stop2 = _xml_doc->createElement("svg:stop"); - Inkscape::XML::Node *stop3 = _xml_doc->createElement("svg:stop"); - Inkscape::SVG::PathString pathString0; - Inkscape::SVG::PathString pathString1; - Inkscape::SVG::PathString pathString2; - Inkscape::SVG::PathString pathString3; - pathString0.curveTo(patch->x[1][0]-patch->x[0][0], patch->y[1][0]-patch->y[0][0], - patch->x[2][0]-patch->x[0][0], patch->y[2][0]-patch->y[0][0], - patch->x[3][0]-patch->x[0][0], patch->y[3][0]-patch->y[0][0]); - pathString1.curveTo(patch->x[3][1]-patch->x[3][0], patch->y[3][1]-patch->y[3][0], - patch->x[3][2]-patch->x[3][0], patch->y[3][2]-patch->y[3][0], - patch->x[3][3]-patch->x[3][0], patch->y[3][3]-patch->y[3][0]); - pathString2.curveTo(patch->x[2][3]-patch->x[3][3], patch->y[2][3]-patch->y[3][3], - patch->x[1][3]-patch->x[3][3], patch->y[1][3]-patch->y[3][3], - patch->x[0][3]-patch->x[3][3], patch->y[0][3]-patch->y[3][3]); - pathString3.curveTo(patch->x[0][2]-patch->x[0][3], patch->y[0][2]-patch->y[0][3], - patch->x[0][1]-patch->x[0][3], patch->y[0][1]-patch->y[0][3], - patch->x[0][0]-patch->x[0][3], patch->y[0][0]-patch->y[0][3]); - std::cout << " path0: " << pathString0.c_str() << std::endl; - std::cout << " path1: " << pathString1.c_str() << std::endl; - std::cout << " path2: " << pathString2.c_str() << std::endl; - std::cout << " path3: " << pathString3.c_str() << std::endl; - stop0->setAttribute("path", pathString0.c_str()); - stop1->setAttribute("path", pathString1.c_str()); - stop2->setAttribute("path", pathString2.c_str()); - stop3->setAttribute("path", pathString3.c_str()); - SPCSSAttr *css0 = sp_repr_css_attr_new(); - SPCSSAttr *css1 = sp_repr_css_attr_new(); - SPCSSAttr *css2 = sp_repr_css_attr_new(); - SPCSSAttr *css3 = sp_repr_css_attr_new(); - // See comment in GfxState.h if there is more than one patch. - //gchar *color_text0 = svgConvertGfxRGB(patch->color[0][0]); - //gchar *color_text1 = svgConvertGfxRGB(patch->color[1][0]); - //gchar *color_text2 = svgConvertGfxRGB(patch->color[1][1]); - //gchar *color_text3 = svgConvertGfxRGB(patch->color[0][1]); - //sp_repr_css_set_property(css0, "stop-color", color_text0); - //sp_repr_css_set_property(css1, "stop-color", color_text1); - //sp_repr_css_set_property(css2, "stop-color", color_text2); - //sp_repr_css_set_property(css3, "stop-color", color_text3); - sp_repr_css_set_property(css0, "stop-color", "#ff0000"); - sp_repr_css_set_property(css1, "stop-color", "#0000ff"); - sp_repr_css_set_property(css2, "stop-color", "#00ff00"); - sp_repr_css_set_property(css3, "stop-color", "#ff00ff"); - sp_repr_css_set_property(css0, "stop-opacity", "1"); - sp_repr_css_set_property(css1, "stop-opacity", "1"); - sp_repr_css_set_property(css2, "stop-opacity", "1"); - sp_repr_css_set_property(css3, "stop-opacity", "1"); - sp_repr_css_change(stop0, css0, "style"); - sp_repr_css_change(stop1, css1, "style"); - sp_repr_css_change(stop2, css2, "style"); - sp_repr_css_change(stop3, css3, "style"); - sp_repr_css_attr_unref(css0); - sp_repr_css_attr_unref(css1); - sp_repr_css_attr_unref(css2); - sp_repr_css_attr_unref(css3); - - // Put them into document. - meshpatch->appendChild(stop0); - meshpatch->appendChild(stop1); - meshpatch->appendChild(stop2); - meshpatch->appendChild(stop3); - meshrow->appendChild(meshpatch); - gradient->appendChild(meshrow); - - Inkscape::GC::release(meshpatch); - Inkscape::GC::release(meshrow); - Inkscape::GC::release(stop0); - Inkscape::GC::release(stop1); - Inkscape::GC::release(stop2); - Inkscape::GC::release(stop3); - std::cout << " exit" << std::endl; - } } else { // Unsupported shading type return NULL; } @@ -913,21 +799,20 @@ gchar *SvgBuilder::_createGradient(GfxShading *shading, double *matrix, bool for g_free(transform_text); } - // if ( extend0 && extend1 ) { - // gradient->setAttribute("spreadMethod", "pad"); - // } + if ( extend0 && extend1 ) { + gradient->setAttribute("spreadMethod", "pad"); + } - // if ( num_funcs > 1 || !_addGradientStops(gradient, shading, func) ) { - // Inkscape::GC::release(gradient); - // return NULL; - // } + if ( num_funcs > 1 || !_addGradientStops(gradient, shading, func) ) { + Inkscape::GC::release(gradient); + return NULL; + } Inkscape::XML::Node *defs = _doc->getDefs()->getRepr(); defs->appendChild(gradient); gchar *id = g_strdup(gradient->attribute("id")); Inkscape::GC::release(gradient); - std::cout << " Exit: " << id << std::endl; return id; } @@ -1529,7 +1414,6 @@ void SvgBuilder::addChar(GfxState *state, double x, double y, } gchar *tmp = g_utf16_to_utf8(uu, uLen, NULL, NULL, NULL); - // std::cout << "tmp: " << (tmp?tmp:"null") << std::endl; if ( tmp && *tmp ) { new_glyph.code = tmp; } else { -- cgit v1.2.3