summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2010-02-21 10:21:18 +0000
committerJohan Engelen <goejendaagh@zonnet.nl>2010-02-21 10:21:18 +0000
commita6149aae1803244c5a67200bfd953b57a3ee056d (patch)
tree975b4d94c1bf8a359466428f63aaa3fb2c309a0e /src
parentstart outputting text to tex. position is wrong. filename of pdf is wrong in ... (diff)
downloadinkscape-a6149aae1803244c5a67200bfd953b57a3ee056d.tar.gz
inkscape-a6149aae1803244c5a67200bfd953b57a3ee056d.zip
output test.tex instead of test.pdf.tex which does not work well. strip path from filename on windows
(bzr r9101.1.6)
Diffstat (limited to 'src')
-rw-r--r--src/extension/internal/cairo-renderer-pdf-out.cpp4
-rw-r--r--src/extension/internal/pdflatex-renderer.cpp20
2 files changed, 18 insertions, 6 deletions
diff --git a/src/extension/internal/cairo-renderer-pdf-out.cpp b/src/extension/internal/cairo-renderer-pdf-out.cpp
index f308f58ca..594389c60 100644
--- a/src/extension/internal/cairo-renderer-pdf-out.cpp
+++ b/src/extension/internal/cairo-renderer-pdf-out.cpp
@@ -256,7 +256,9 @@ CairoRendererPdfOutput::save(Inkscape::Extension::Output *mod, SPDocument *doc,
// Create LaTeX file (if requested)
if (new_textToLaTeX) {
gchar * tex_filename;
- tex_filename = g_strdup_printf("%s.tex", filename);
+ //strip filename of ".pdf", do not add ".tex" here.
+ gsize n = g_str_has_suffix(filename, ".pdf") ? strlen(filename)-4 : strlen(filename);
+ tex_filename = g_strndup(filename, n);
ret = latex_render_document_text_to_file(doc, tex_filename, new_exportId, new_exportDrawing, new_exportCanvas);
g_free(tex_filename);
diff --git a/src/extension/internal/pdflatex-renderer.cpp b/src/extension/internal/pdflatex-renderer.cpp
index 60b960ddb..0d2ffcc94 100644
--- a/src/extension/internal/pdflatex-renderer.cpp
+++ b/src/extension/internal/pdflatex-renderer.cpp
@@ -139,14 +139,17 @@ PDFLaTeXRenderer::setTargetFile(gchar const *filename) {
while (isspace(*filename)) filename += 1;
_filename = g_strdup(filename);
- Inkscape::IO::dump_fopen_call(filename, "K");
- FILE *osf = Inkscape::IO::fopen_utf8name(filename, "w+");
+
+ gchar *filename_ext = g_strdup_printf("%s.tex", filename);
+ Inkscape::IO::dump_fopen_call(filename_ext, "K");
+ FILE *osf = Inkscape::IO::fopen_utf8name(filename_ext, "w+");
if (!osf) {
fprintf(stderr, "inkscape: fopen(%s): %s\n",
- filename, strerror(errno));
+ filename_ext, strerror(errno));
return false;
}
_stream = osf;
+ g_free(filename_ext);
}
if (_stream) {
@@ -158,6 +161,7 @@ PDFLaTeXRenderer::setTargetFile(gchar const *filename) {
fprintf(_stream, "%%%% Creator: Inkscape %s, www.inkscape.org\n", PACKAGE_STRING);
fprintf(_stream, "%%%% PDF + LaTeX output extension by Johan Engelen, 2010\n");
+ fprintf(_stream, "%%%% Accompanies %s.pdf\n", _filename);
/* flush this to test output stream as early as possible */
if (fflush(_stream)) {
if (ferror(_stream)) {
@@ -274,8 +278,14 @@ PDFLaTeXRenderer::writePostamble()
{
fprintf(_stream, "%s", postamble1);
- // TODO: strip path from filename on Windows
- fprintf(_stream, " \\put(0,0){\\includegraphics{%s.pdf}}%%\n", _filename);
+ // strip pathname on windows, as it is probably desired. It is not possible to work without paths on windows yet. (bug)
+#ifdef WIN32
+ gchar *figurefile = g_path_get_basename(_filename);
+#else
+ gchar *figurefile = g_strdup(_filename);
+#endif
+ fprintf(_stream, " \\put(0,0){\\includegraphics{%s.pdf}}%%\n", figurefile);
+ g_free(figurefile);
fprintf(_stream, "%s", postamble2);
}