Hello,
first of all, thank you for developing and maintaining xournal.

Sometimes
 I need to batch export a few xoj files to pdf and I would like to save 
some time by doing so from a bash script without having to open xournal 
and use the menus.

I attach a small patch file that allows exporting using the following  syntax:
xournal filname.xoj -e filename.pdf

If others find it useful, it might be worth including it into the next version 
of xournal.

Best,
Luca
diff -rN -U 6 src_/main.c src/main.c
--- cur/src/main.c	2012-07-01 20:35:45.000000000 +0100
+++ new/src/main.c	2014-01-26 23:49:56.150370775 +0000
@@ -73,15 +73,16 @@
   canvas = GNOME_CANVAS (gnome_canvas_new_aa ());
 
   // initialize data
   ui.default_page.bg->canvas_item = NULL;
   ui.layerbox_length = 0;
 
-  if (argc > 2 || (argc == 2 && argv[1][0] == '-')) {
+  if (argc > 4 || (argc >= 2 && argv[1][0] == '-')
+      || (argc == 3) || (argc == 4  && (argv[2][0] != '-' || argv[2][1] != 'e' || argv[3][0] == '-'))) {
     printf(_("Invalid command line parameters.\n"
-           "Usage: %s [filename.xoj]\n"), argv[0]);
+           "Usage: %s [filename.xoj [-e export_as.pdf ]]\n"), argv[0]);
     gtk_exit(0);
   }
    
   undo = NULL; redo = NULL;
   journal.pages = NULL;
   bgpdf.status = STATUS_NOT_INIT;
@@ -304,12 +305,31 @@
   if (!success) {
     w = gtk_message_dialog_new(GTK_WINDOW (winMain), GTK_DIALOG_DESTROY_WITH_PARENT,
        GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Error opening file '%s'"), argv[1]);
     gtk_dialog_run(GTK_DIALOG(w));
     gtk_widget_destroy(w);
   }
+  if (argc == 2) return;
+  set_cursor_busy(TRUE);
+  if (g_path_is_absolute(argv[3]))
+    tmpfn = g_strdup(argv[3]);
+  else {
+    tmppath = g_get_current_dir();
+    tmpfn = g_build_filename(tmppath, argv[3], NULL);
+    g_free(tmppath);
+  }
+  success = print_to_pdf(tmpfn);
+  g_free(tmpfn);
+  set_cursor_busy(FALSE);
+  if (!success) {
+    w = gtk_message_dialog_new(GTK_WINDOW (winMain), GTK_DIALOG_DESTROY_WITH_PARENT,
+       GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Error exporting file '%s' to '%s'"), argv[1], argv[3]);
+    gtk_dialog_run(GTK_DIALOG(w));
+    gtk_widget_destroy(w);
+  }
+  gtk_exit(0);
 }
 
 
 int
 main (int argc, char *argv[])
 {
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Xournal-devel mailing list
Xournal-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xournal-devel

Reply via email to