file-pdf-save-multi requires an array of image ids:
This is my python code:

#
# PDF file-pdf-save-multi python-fu example
# TESTED ON:
# GIMP 2.10.12 Python Console
# Python 2.7.16 (default, May 28 2019, 08:10:12)  [GCC 8.3.0 64 bit (AMD64)]
#
# Get image array
images = gimp.image_list()
#
# Optionally sort by filename to order pages by filename
# images.sort(key=lambda x: x.filename, reverse=False)
#
# Extract ids from image array
images_ids = [img.ID for img in images]
#
# Save multi page pdf
pdf_filename = "/tmp/multipage_output.pdf"
pdb.file_pdf_save_multi(len(images), images_ids, False, True, False,
pdf_filename, pdf_filename)



>Hello,
>       I am having a problem with function file-pdf-save-multi().
>
># What I am trying to do
>
>I am trying to render a list of several XCF files into a single PDF,
>each XCF file being rendered as a page of the output document. I have
>a
>first version, which works, but it uses file-pdf-save() to make one
>PDF
>file per XCF source file, and assembles them afterward using another
>program. As I am writing this script for some other people, some using
>GNU/Linux, and some Mac OS, I would like to keep the list of
>dependencies as small as possible. So if I could manage to make it
>pure
>GIMP (and sh), it would be perfect.
>
># The (non-working) script
>
>The core part of my script is given at the end of this message. It
>provides two versions :
>- the first one takes a single XCF file and converts it to PDF, using
>file-pdf-save(). It works, but I would prefer the following one to
>work:
>- the second one takes several XCF (actually, twice the same in this
>dummy version), and converts them as a two-pages PDF, each source XCF
>being one page of the PDF, using function file-pdf-save-multi(). It
>does
>not work, the output being :
>
>    ts> Create multipage PDF-Warning: An error occured while creating
>the PDF file:
>    error while writing to output stream
>    Make sure you entered a valid filename and that the selected
>location isn't read only!
>
>    Error: Procedure execution of file-pdf-save-multi failed
>
>
># Error analysis
>
>The error message is weird: I looked at the source code of the two
>functions I use (file-pdf-save and file-pdf-save-multi), and the way
>the
>output file is handled seems to be the same. However, although the
>first
>one succeeds, the second one fails, saying that maybe the location is
>read only (which is not the case).
>http://git.gnome.org/browse/gimp/tree/plug-ins/common/file-pdf-save.c
>
># My question
>
>I could not find on the Internet any example of file-pdf-save-multi()
>being used. The only documentation I found was the GIMP documentation,
>which was not sufficient for me to use it. Can you help me to use this
>function?
>
>Regards,
>Louis
>
>==================== Script ==================================
>
>#!/bin/bash
># Usage: script_name.sh file.xcf
># Expected behavior:
># 1) creates output_simple.pdf as the PDF version of the argument
># 2) creates output_multi.pdf as a PDF containing two pages,
>#    each of which being a PDF version of the argument.
># Actual behavior:
># 1) works
># 2) fails, and I wonder why.
>#
># I hope my email agent did not messed up two much with lines
>breaks...
>
>input=$1
>output_base="output"
>
>echo "### Using file-pdf-save"
>echo "\
>    (let* \
>        ( \
>          (image (car (gimp-file-load RUN-NONINTERACTIVE \"$input\"
>\"$input\"))) \
>          (drawable (car (gimp-image-merge-visible-layers image
>CLIP-TO-IMAGE)))  \
>        ) \
>        (file-pdf-save RUN-NONINTERACTIVE image drawable
>\"${output_base}_simple.pdf\" \"${output_base}_simple.pdf\" TRUE TRUE
>TRUE) \
>    ) \
>    (gimp-quit 0)" | \
>    gimp -i -b -
>
>echo "\n###############"
>echo "### Using file-pdf-save-multi"
>
>echo "\
>    (let \
>        ( \
>            (images (cons-array 2 'double)) \
>        ) \
>        ( \
>            (aset images 0 (car (gimp-file-load RUN-NONINTERACTIVE
>\"$input\" \"$input\"))) \
>            (aset images 1 (car (gimp-file-load RUN-NONINTERACTIVE
>\"$input\" \"$input\"))) \
>            (file-pdf-save-multi RUN-NONINTERACTIVE images 2 TRUE TRUE
>TRUE \"${output_base}_multi.pdf\" \"${output_base}_multi.pdf\") \
>        ) \
>    ) \
>    (gimp-quit 0)" | \
>    gimp -i -b -

-- 
renzofilini (via www.gimpusers.com/forums)
_______________________________________________
gimp-user-list mailing list
List address:    gimp-user-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-user-list
List archives:   https://mail.gnome.org/archives/gimp-user-list

Reply via email to