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