diff --git a/src/extension/internal/cairo-renderer-pdf-out.cpp b/src/extension/internal/cairo-renderer-pdf-out.cpp
index 804919e331fef925338e70ae50167fa68eb39303..e8eff20b7ab6eedc7a88500f004a9cdc953acab8 100644 (file)
* Authors:
* Ted Gould <ted@gould.cx>
* Ulf Erikson <ulferikson@users.sf.net>
+ * Johan Engelen <goejendaagh@zonnet.nl>
*
- * Copyright (C) 2004-2006 Authors
+ * Copyright (C) 2004-2010 Authors
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#include "cairo-renderer-pdf-out.h"
#include "cairo-render-context.h"
#include "cairo-renderer.h"
+#include "latex-text-renderer.h"
#include <print.h>
#include "extension/system.h"
#include "extension/print.h"
#include "sp-item.h"
#include "sp-root.h"
+#include <2geom/matrix.h>
+
namespace Inkscape {
namespace Extension {
namespace Internal {
static bool
pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int level,
- bool texttopath, bool filtertobitmap, int resolution,
+ bool texttopath, bool omittext, bool filtertobitmap, int resolution,
const gchar * const exportId, bool exportDrawing, bool exportCanvas)
{
sp_document_ensure_up_to_date(doc);
/* Create new arena */
NRArena *arena = NRArena::create();
+ nr_arena_set_renderoffscreen (arena);
unsigned dkey = sp_item_display_key_new(1);
sp_item_invoke_show(base, arena, dkey, SP_ITEM_SHOW_DISPLAY);
CairoRenderContext *ctx = renderer->createContext();
ctx->setPDFLevel(level);
ctx->setTextToPath(texttopath);
+ renderer->_omitText = omittext;
ctx->setFilterToBitmap(filtertobitmap);
ctx->setBitmapResolution(resolution);
@@ -105,7 +111,6 @@ pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int
return ret;
}
-
/**
\brief This function calls the output module with the filename
\param mod unused
@@ -145,6 +150,14 @@ CairoRendererPdfOutput::save(Inkscape::Extension::Output *mod, SPDocument *doc,
g_warning("Parameter <textToPath> might not exist");
}
+ bool new_textToLaTeX = FALSE;
+ try {
+ new_textToLaTeX = mod->get_param_bool("textToLaTeX");
+ }
+ catch(...) {
+ g_warning("Parameter <textToLaTeX> might not exist");
+ }
+
bool new_blurToBitmap = FALSE;
try {
new_blurToBitmap = mod->get_param_bool("blurToBitmap");
@@ -179,21 +192,32 @@ CairoRendererPdfOutput::save(Inkscape::Extension::Output *mod, SPDocument *doc,
bool new_exportCanvas = FALSE;
try {
- new_exportCanvas = mod->get_param_bool("areaCanvas");
+ new_exportCanvas = mod->get_param_bool("areaPage");
}
catch(...) {
g_warning("Parameter <exportCanvas> might not exist");
}
- gchar * final_name;
- final_name = g_strdup_printf("> %s", filename);
- ret = pdf_render_document_to_file(doc, final_name, level,
- new_textToPath, new_blurToBitmap, new_bitmapResolution,
- new_exportId, new_exportDrawing, new_exportCanvas);
- g_free(final_name);
+ // Create PDF file
+ {
+ gchar * final_name;
+ final_name = g_strdup_printf("> %s", filename);
+ ret = pdf_render_document_to_file(doc, final_name, level,
+ new_textToPath, new_textToLaTeX, new_blurToBitmap, new_bitmapResolution,
+ new_exportId, new_exportDrawing, new_exportCanvas);
+ g_free(final_name);
+
+ if (!ret)
+ throw Inkscape::Extension::Output::save_failed();
+ }
- if (!ret)
- throw Inkscape::Extension::Output::save_failed();
+ // Create LaTeX file (if requested)
+ if (new_textToLaTeX) {
+ ret = latex_render_document_text_to_file(doc, filename, new_exportId, new_exportDrawing, new_exportCanvas, true);
+
+ if (!ret)
+ throw Inkscape::Extension::Output::save_failed();
+ }
}
#include "clear-n_.h"
"<_item value='PDF14'>" N_("PDF 1.4") "</_item>\n"
"</param>\n"
"<param name=\"textToPath\" gui-text=\"" N_("Convert texts to paths") "\" type=\"boolean\">false</param>\n"
+ "<param name=\"textToLaTeX\" gui-text=\"" N_("PDF+LaTeX: Omit text in PDF, and create LaTeX file") "\" type=\"boolean\">false</param>\n"
"<param name=\"blurToBitmap\" gui-text=\"" N_("Rasterize filter effects") "\" type=\"boolean\">true</param>\n"
"<param name=\"resolution\" gui-text=\"" N_("Resolution for rasterization (dpi)") "\" type=\"int\" min=\"1\" max=\"10000\">90</param>\n"
- "<param name=\"areaDrawing\" gui-text=\"" N_("Export drawing, not page") "\" type=\"boolean\">false</param>\n"
- "<param name=\"areaCanvas\" gui-text=\"" N_("Export canvas") "\" type=\"boolean\">false</param>\n"
+ "<param name=\"areaDrawing\" gui-text=\"" N_("Export area is drawing") "\" type=\"boolean\">false</param>\n"
+ "<param name=\"areaPage\" gui-text=\"" N_("Export area is page") "\" 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"