From dc950f77d2a9f9aa23f6bd0ea59648c34fff491b Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Thu, 22 Apr 2010 14:59:03 +0200 Subject: Imported Upstream version 1.0.3 --- src/book.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'src/book.c') diff --git a/src/book.c b/src/book.c index 8493c84..0dce5f0 100644 --- a/src/book.c +++ b/src/book.c @@ -284,7 +284,7 @@ book_save_pdf_with_imagemagick (Book *book, GFile *file, GError **error) for (iter = book->priv->pages; iter && result; iter = iter->next) { Page *page = iter->data; GFile *jpeg_file, *tiff_file; - gchar *path; + gchar *path, *resolution_command, *stdout_text = NULL, *stderr_text = NULL; gint jpeg_size, tiff_size; jpeg_file = get_temporary_file ("simple-scan", "jpg"); @@ -302,6 +302,25 @@ book_save_pdf_with_imagemagick (Book *book, GFile *file, GError **error) path = g_file_get_path (jpeg_file); else path = g_file_get_path (tiff_file); + + resolution_command = g_strdup_printf ("convert %s -density %d %s", path, page_get_dpi (page), path); + result = g_spawn_command_line_sync (resolution_command, &stdout_text, &stderr_text, &exit_status, error); + if (result && exit_status != 0) { + g_warning ("ImageMagick returned error code %d, command line was: %s", exit_status, resolution_command); + g_warning ("stdout: %s", stdout_text); + g_warning ("stderr: %s", stderr_text); + result = FALSE; + g_set_error (error, BOOK_TYPE, 0, + "ImageMagick returned error code %d\n" + "\n" + "Command line: %s\n" + "Stdout: %s\n" + "Stderr: %s", + exit_status, resolution_command, stdout_text, stderr_text); + } + if (!result) + break; + g_string_append_printf (command_line, " %s", path); g_free (path); } @@ -321,7 +340,13 @@ book_save_pdf_with_imagemagick (Book *book, GFile *file, GError **error) g_warning ("stdout: %s", stdout_text); g_warning ("stderr: %s", stderr_text); result = FALSE; - g_set_error (error, BOOK_TYPE, 0, "ImageMagick returned error code %d, command line was: %s", exit_status, command_line->str); + g_set_error (error, BOOK_TYPE, 0, + "ImageMagick returned error code %d\n" + "\n" + "Command line: %s\n" + "Stdout: %s\n" + "Stderr: %s", + exit_status, command_line->str, stdout_text, stderr_text); } g_free (stdout_text); g_free (stderr_text); -- cgit v1.2.3