summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/cairo-pdf-out.cpp
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2008-04-16 06:43:33 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2008-04-16 06:43:33 +0000
commit9df8fb8fe0575f7a6e40f1afb83ca19fcfeb2da8 (patch)
tree497f6769f3086f866e8ee5bec063a1b71287b680 /src/extension/internal/cairo-pdf-out.cpp
parentCmake: Add simple CMakeLists.txt for 2geom and linking to inkscape (diff)
downloadinkscape-9df8fb8fe0575f7a6e40f1afb83ca19fcfeb2da8.tar.gz
inkscape-9df8fb8fe0575f7a6e40f1afb83ca19fcfeb2da8.zip
make sure --export-area-canvas works for pdf export too
(bzr r5455)
Diffstat (limited to 'src/extension/internal/cairo-pdf-out.cpp')
-rw-r--r--src/extension/internal/cairo-pdf-out.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/extension/internal/cairo-pdf-out.cpp b/src/extension/internal/cairo-pdf-out.cpp
index b6ae0b6b2..71e9eda17 100644
--- a/src/extension/internal/cairo-pdf-out.cpp
+++ b/src/extension/internal/cairo-pdf-out.cpp
@@ -63,10 +63,14 @@ pdf_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int
/* Create new arena */
const gchar* exportId = mod->get_param_string("exportId");
bool exportDrawing = mod->get_param_bool("exportDrawing");
+ bool exportCanvas = mod->get_param_bool("exportCanvas");
if (exportId && strcmp(exportId, "")) {
- // we want to export the given item only, not page
+ // we want to export the given item only
mod->base = SP_ITEM(doc->getObjectById(exportId));
- mod->set_param_bool("pageBoundingBox", FALSE);
+ if (exportCanvas)
+ mod->set_param_bool("pageBoundingBox", TRUE);
+ else
+ mod->set_param_bool("pageBoundingBox", FALSE);
} else {
// we want to export the entire document from root
mod->base = SP_ITEM(sp_document_root(doc));
@@ -166,6 +170,17 @@ CairoPdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc, const g
g_warning("Parameter <exportDrawing> might not exist");
}
+ bool old_exportCanvas = false;
+ bool new_exportCanvas = false;
+ try {
+ old_exportCanvas = ext->get_param_bool("exportCanvas");
+ new_exportCanvas = mod->get_param_bool("exportCanvas");
+ ext->set_param_bool("exportCanvas", new_exportCanvas);
+ }
+ catch(...) {
+ g_warning("Parameter <exportCanvas> might not exist");
+ }
+
gchar * final_name;
final_name = g_strdup_printf("> %s", uri);
ret = pdf_print_document_to_file(doc, final_name, 0, new_textToPath, new_blurToBitmap);
@@ -195,6 +210,12 @@ CairoPdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc, const g
catch(...) {
g_warning("Parameter <exportDrawing> might not exist");
}
+ try {
+ ext->set_param_bool("exportCanvas", old_exportCanvas);
+ }
+ catch(...) {
+ g_warning("Parameter <exportCanvas> might not exist");
+ }
if (!ret)
throw Inkscape::Extension::Output::save_failed();
@@ -224,6 +245,7 @@ CairoPdfOutput::init (void)
"<param name=\"blurToBitmap\" gui-text=\"" N_("Convert blur effects to bitmaps") "\" type=\"boolean\">false</param>\n"
"<param name=\"resolution\" gui-text=\"" N_("Preferred resolution (DPI) of bitmaps") "\" type=\"int\" min=\"72\" max=\"2400\">90</param>\n"
"<param name=\"exportDrawing\" gui-text=\"" N_("Export drawing, not page") "\" type=\"boolean\">false</param>\n"
+ "<param name=\"exportCanvas\" gui-text=\"" N_("Export canvas") "\" type=\"boolean\">false</param>\n"
"<param name=\"exportId\" gui-text=\"" N_("Limit export to the object with ID") "\" type=\"string\"></param>\n"
"<output>\n"
"<extension>.pdf</extension>\n"