Scribus Forums

Development => Features => Topic started by: NathanUp on March 06, 2026, 04:49:07 PM

Title: PDF Export Profiles
Post by: NathanUp on March 06, 2026, 04:49:07 PM
I regularly work on event invitations that have three versions: one for normal attendees, one for virtual attendees, and another for VIP attendees. My file consists of four pages: one for each type of attendee, and a "thanking our sponsors" page including sponsor logos that will be attached to each invitation type. To export these invitations, as I do every time a new sponsor logo is added, I currently have to export three times: page 1 and 4, 2 and 4, and finally 3 and 4. This got me thinking. Wouldn't it be nice to be able to save each export configuration as an "export profile," and then execute them all at once? I don't recall seeing this feature in any other software, so it may be unique. This would also be handy for people who export files for both print and web, or who need different levels of compression for different applications. Here's how I envisage it working:

Profile Creation Workflow
===================


Profile Management Workflow
=======================


Errors and Exceptions
=================


I think that this would a useful and exciting feature for many. Thanks for your time!
Title: Re: PDF Export Profiles
Post by: Lynn on March 07, 2026, 01:32:27 AM
You can do something like this currently with the built-in scripter and the pdfFile object - https://impagina.org/scribus-scripter-api/pdf-export/ (https://impagina.org/scribus-scripter-api/pdf-export/). You can even write a script that does all three exports in one go (see below).

You'd probably need to customize it to fit your use-case - the scripter lets you set lots of pdf export settings by adding more lines of the format pdf.[variablename] = value. I assume the rest of the values are pulled from your defaults set within Preferences -> PDF Export.

I do agree it would be great to have easy access to multiple profiles in the pdf export window.


import os.path
import string

try:
import scribus
except ImportError:
pass

def main():
try:
scribus # pylint: disable=pointless-statement
except NameError:
return

#get base filename and subdirectory so we save to the right folder
fileName = scribus.getDocName()
entry = fileName.rsplit('.sla', 1)[0]

#make pdf file object, set any PDF export settings here
pdf = scribus.PDFfile()
pdf.info = "Invitation"
pdf.version = 14

#example exporting three times with different page ranges
pdf.pages = [1,4]
pdf.file = entry+'Attendees.pdf'
pdf.save()

pdf.pages = [2,4]
pdf.file = entry+'Virtual.pdf'
pdf.save()

pdf.pages = [3,4]
pdf.file = entry+'VIP.pdf'
pdf.save()

return

if __name__ == '__main__':
main()