diff options
| author | Adib Taraben <theadib@gmail.com> | 2007-12-26 02:31:57 +0000 |
|---|---|---|
| committer | theadib <theadib@users.sourceforge.net> | 2007-12-26 02:31:57 +0000 |
| commit | 6467b955cf0d961f5c2884d072b7ea26c19c08f9 (patch) | |
| tree | ea3097468d183d3bcfd8f5b4411aab54d0690110 /src/extension/internal/cairo-ps-out.cpp | |
| parent | Don't store special attributes/types when saving 3D boxes to plain SVG (so th... (diff) | |
| download | inkscape-6467b955cf0d961f5c2884d072b7ea26c19c08f9.tar.gz inkscape-6467b955cf0d961f5c2884d072b7ea26c19c08f9.zip | |
more on cairo ps/pdf options
(bzr r4304)
Diffstat (limited to 'src/extension/internal/cairo-ps-out.cpp')
| -rw-r--r-- | src/extension/internal/cairo-ps-out.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/extension/internal/cairo-ps-out.cpp b/src/extension/internal/cairo-ps-out.cpp index 06e0f92c6..5681fda5e 100644 --- a/src/extension/internal/cairo-ps-out.cpp +++ b/src/extension/internal/cairo-ps-out.cpp @@ -51,7 +51,7 @@ CairoPsOutput::check (Inkscape::Extension::Extension * module) } static bool -ps_print_document_to_file(SPDocument *doc, gchar const *filename) +ps_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int level, bool texttopath, bool filtertobitmap) { CairoRenderer *renderer; CairoRenderContext *ctx; @@ -68,6 +68,10 @@ ps_print_document_to_file(SPDocument *doc, gchar const *filename) /* Create renderer and context */ renderer = new CairoRenderer(); ctx = renderer->createContext(); + ctx->setPSLevel(level); + ctx->setTextToPath(texttopath); + ctx->setFilterToBitmap(filtertobitmap); + bool ret = ctx->setPsTarget(filename); if(ret) { /* Render document */ @@ -106,18 +110,24 @@ CairoPsOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc, const gc if (ext == NULL) return; + const gchar *old_level = ext->get_param_enum("PSlevel"); + const gchar *new_level = mod->get_param_enum("PSlevel"); + int level = 1; + bool old_textToPath = ext->get_param_bool("textToPath"); - bool new_val = mod->get_param_bool("textToPath"); - ext->set_param_bool("textToPath", new_val); + bool new_textToPath = mod->get_param_bool("textToPath"); + ext->set_param_bool("textToPath", new_textToPath); bool old_blurToBitmap = ext->get_param_bool("blurToBitmap"); - new_val = mod->get_param_bool("blurToBitmap"); - ext->set_param_bool("blurToBitmap", new_val); + bool new_blurToBitmap = mod->get_param_bool("blurToBitmap"); + ext->set_param_bool("blurToBitmap", new_blurToBitmap); + if(g_ascii_strcasecmp("PS2", new_level) == 0) + level = 0; gchar * final_name; final_name = g_strdup_printf("> %s", uri); - ret = ps_print_document_to_file(doc, final_name); + ret = ps_print_document_to_file(doc, final_name, level, new_textToPath, new_blurToBitmap); g_free(final_name); ext->set_param_bool("blurToBitmap", old_blurToBitmap); @@ -153,18 +163,18 @@ CairoPsOutput::init (void) "<name>Cairo PS Output</name>\n" "<id>org.inkscape.print.ps.cairo</id>\n" "<param name=\"PSlevel\" gui-text=\"" N_("Restrict to PS level") "\" type=\"enum\" >\n" + "<item value='PS3'>" N_("PostScript 3") "</item>\n" #if (CAIRO_VERSION >= 010502) "<item value='PS2'>" N_("PostScript level 2") "</item>\n" #endif - "<item value='PS3'>" N_("PostScript 3") "</item>\n" "</param>\n" "<param name=\"textToPath\" gui-text=\"" N_("Convert texts to paths") "\" type=\"boolean\">true</param>\n" "<param name=\"blurToBitmap\" gui-text=\"" N_("Convert blur effects to bitmaps") "\" type=\"boolean\">false</param>\n" "<output>\n" "<extension>.ps</extension>\n" "<mimetype>application/ps</mimetype>\n" - "<filetypename>Cairo PS (*.ps)</filetypename>\n" - "<filetypetooltip>PS File</filetypetooltip>\n" + "<filetypename>PostScript via Cairo (*.ps)</filetypename>\n" + "<filetypetooltip>PostScript File</filetypetooltip>\n" "</output>\n" "</inkscape-extension>", new CairoPsOutput()); |
