- mdvi_setpage (dvi_document->context, rc->page);
-
- mdvi_set_shrink (dvi_document->context,
- (int)dvi_document->base_width * dvi_document->params->hshrink / thumb_width,
- (int)dvi_document->base_height * dvi_document->params->vshrink / thumb_height);
-
- proposed_width = dvi_document->context->dvi_page_w * dvi_document->context->params.conv;
- proposed_height = dvi_document->context->dvi_page_h * dvi_document->context->params.vconv;
-
- if (border) {
- mdvi_cairo_device_set_margins (&dvi_document->context->device,
- MAX (thumb_width - proposed_width, 0) / 2,
- MAX (thumb_height - proposed_height, 0) / 2);
- } else {
- mdvi_cairo_device_set_margins (&dvi_document->context->device,
- MAX (thumb_width - proposed_width - 2, 0) / 2,
- MAX (thumb_height - proposed_height - 2, 0) / 2);
+ DviDocument *dvi_document = DVI_DOCUMENT(exporter);
+
+ command_line = g_strdup_printf ("dvipdfm %s -o %s \"%s\"", /* dvipdfm -s 1,2,.., -o exporter_filename dvi_filename */
+ dvi_document->exporter_opts->str,
+ dvi_document->exporter_filename,
+ dvi_document->context->filename);
+
+ success = g_spawn_command_line_sync (command_line,
+ NULL,
+ NULL,
+ &exit_stat,
+ &err);
+
+ g_free (command_line);
+
+ if (success == FALSE) {
+ g_warning ("Error: %s", err->message);
+ } else if (!WIFEXITED(exit_stat) || WEXITSTATUS(exit_stat) != EXIT_SUCCESS){
+ g_warning ("Error: dvipdfm does not end normally or exit with a failure status.");