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