From 6467b955cf0d961f5c2884d072b7ea26c19c08f9 Mon Sep 17 00:00:00 2001 From: Adib Taraben Date: Wed, 26 Dec 2007 02:31:57 +0000 Subject: more on cairo ps/pdf options (bzr r4304) --- src/extension/internal/cairo-ps-out.cpp | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'src/extension/internal/cairo-ps-out.cpp') 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) "Cairo PS Output\n" "org.inkscape.print.ps.cairo\n" "\n" + "" N_("PostScript 3") "\n" #if (CAIRO_VERSION >= 010502) "" N_("PostScript level 2") "\n" #endif - "" N_("PostScript 3") "\n" "\n" "true\n" "false\n" "\n" ".ps\n" "application/ps\n" - "Cairo PS (*.ps)\n" - "PS File\n" + "PostScript via Cairo (*.ps)\n" + "PostScript File\n" "\n" "", new CairoPsOutput()); -- cgit v1.2.3