about summary refs log tree commit diff
path: root/bin/xcf-to-pdf
diff options
context:
space:
mode:
Diffstat (limited to 'bin/xcf-to-pdf')
-rwxr-xr-xbin/xcf-to-pdf23
1 files changed, 23 insertions, 0 deletions
diff --git a/bin/xcf-to-pdf b/bin/xcf-to-pdf
new file mode 100755
index 0000000..34da9c8
--- /dev/null
+++ b/bin/xcf-to-pdf
@@ -0,0 +1,23 @@
+#!/bin/sh
+{
+cat <<EOF
+(define (convert-xcf-to-pdf filename outfile)
+  (let* (
+     (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
+     (drawable (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))
+     )
+    (file-pdf-save RUN-NONINTERACTIVE image drawable outfile outfile TRUE TRUE TRUE)
+    (gimp-image-delete image) ; ... or the memory will explode
+    )
+)
+
+(gimp-message-set-handler 1) ; Messages to standard output
+EOF
+
+for i in $*; do
+  echo "(gimp-message \"$i\")"
+  echo "(convert-xcf-to-pdf \"$i\" \"${i%%.xcf}.pdf\")"
+done
+
+echo "(gimp-quit 0)"
+} | gimp -i -b -