View Issue Details

IDProjectCategoryView StatusLast Update
0000990ScribusPlug-inspublic2019-11-26 21:21
Reporterwalter Assigned Toale  
Status assignedResolutionopen 
PlatformNAOSNAOS VersionNA
Target VersionFuture Release - Nice to have 
Summary0000990: Mail-Merge (update: Scribus Generator)

None of the info I have read or demos I have seen indicates SCRIBUS has an out-of-the-box simple mail-merge capability - for letters or adress labels (many records per single sheet of paper). I really need this feature - badly. I can do all the pre-filtering with a database product or etc, so the capability only needs to be reasonably simple. I also really don't want to have to learn Python to do this myself -- will take me far too long.

thanks a lot

Additional InformationUpdate (see 0000990:0036128)

Fork of Scribus Generator by berteh on Github:
He is collaborating with bjarnesvanderberg on Scribus-Data-Merge

TagsNo tags attached.


related to 0003813 acknowledged Metabug: Scripter 
related to 0004467 acknowledged Template Designer - Widgets for creating data driven documents 



2004-08-23 18:34

manager   ~0002196

that sounds like a job for e.g. (to me).
Maybe one day we will have an_universal_database_connector in scribus but today is the only way the Python Scripter.

I cannot speak in the name of the others but I think you will wait very long time to this ;)

Try to ask at the mailing list - maybe somebody will write script you need exactly for you.


2004-08-24 20:41

reporter   ~0002217


In answer to 'maybe this is more suitable for e.g. OpenOffice' - I have used a very old but truly excellent DTP program - PublishIT Easy (PIE) on my Mac (this is totally different from a PIE which is available on a PC) which many readers may be familiar with. PIE as a company died around 1994, but I still use the program almost every day.

It contains a simple but very very useful GUI-driven mail-merge capability, which I have found invaluable - the input file is nothing more than a simple flat text file, where the first line contains the field names (comma or tab separated), and the other lines contain data. One can do mailings with one record per document/letter, or many records per document/letter (for address labels). One can also step through the records to see what the document/letter looks like when the data is plugged in, and print particular pages accordingly. [Note that the flat file can be easily produced as a result table/simple report from any decent database program, or as a simple export from an Excel spreadsheet.]

I would greatly apreciate this as a plug-in, but do not have the programming experience to pull it off easily - someone really skilled in Python could probably put something quite useful together in 16-24 hours




2004-09-14 02:20

reporter   ~0002373

Mail Merge (or database merge, 'cause its pretty useful for a lot of things) would still be nice as a direct feature of Scribus. It could help in generating print catalogs from a database, and it *is* very handy if you use Scribus for any kind of newsletter. I reboot to Windows just to print a monthly newsletter with PageMaker 7, because the layout is too involved for OpenOffice.

BTW--Mailmerge in PageMaker 7 is handled by a (default) plugin. It works like a charm, but it cannot do the merge at print time. Instead, it creates a new document with the merged records. If you have a fairly complex layout, it consumes quite a bit of memory to produce, say, 500 merged records.

So what we want is :)

- Integrated database-merge, with the option to merge to individual pages in a new document, to merge to seperate documents or to merge at print time.


2005-06-23 07:24

reporter   ~0005098

I did a primitive mail merge script in Python a while ago. Now that there is support for PyQt and frame annotations in Scribus, I think a fairly solid mail merge feature could be done in Python.


2006-06-17 04:23

reporter   ~0011656

database merge to create new documents or new pages, would be great for some of my projects as well, such as designing playing cards. If I could specify the image to go into the image frame, and the text to go into each text frame, as well as colours etc in a database it would make this type of project much faster, easier, and more precise.


2006-10-12 10:29

reporter   ~0012935

One of my students is considering writing this plugin as bachelor project. Could you help me with more formal specification of the project? Please provide your requerements: functional, not functional or design.

My points: create genral source input for various sources (XML, CSV, SQL database), ability to read Scribus document templates, ability to read information from these sources and print documents (printer, PDF), configuration dialog with source configuration (file, database connection + definition of fields to read + some basic conversions for all fields - e.g. uppercase, lowercase, replace, trim, strip.

Non functional requirements: Python + PyQT for dialogs, the datasource API to be general (to allow use in other plugins or Scribus some day).

Please comment this, thank you.


2006-10-12 10:57

manager   ~0012937

Just for terminology:
* "plugin" is C++ code called by dlopen() etc. Dynamically loaded into scribus in start phase.
* "Python script" or "scripter script" is Python script or more files called by "Scripter plugin" (yep, written in C/C++) when scribus is running.

I'm afraid there will be some issues with PyQt due the limitations of the Python sub-interpreters.

I suggest the student should start with "backend" - creating mail-merge from various formats. GUI can be added a little bit later. There is a lot of to do with various RDBMS support.


2006-10-29 21:22

administrator   ~0013180

Proper mail merge *requires* the new text engine. Mail merge has been discussed and will be supported better in 1.3.5 or 1.3.6.


2006-10-30 07:10

manager   ~0013182

no problem Craig ;)

Bohuslav Ječmen (the student mentioned above) is working on "scribus independent" python "data getter". We expect a bag of classes to get the data from various sources transformed into documented format (some kind of dictionary or whatever). The scribus integration part will follow and it should be very simple today - with the easy way to replace with something more exact (depending on the NLS).

I think it will be great ;)


2006-11-04 23:36

reporter   ~0013276


What do you think about


2010-12-10 14:38


hey walter,
i missed the Mail Merge functionality in Scribus as well. i have implemented an extension script in Python called SRIBUS GENERATOR which could fit your need. it replaces text with data and it is easy to use with a self-explanatory UI. have a look at:


2015-08-31 12:08

updater   ~0036128

Fork of Scribus Generator by berteh on Github:
He is collaborating with bjarnesvanderberg on Scribus-Data-Merge

Perhaps these scripts will one day be distributed through Scribus or available through the download manager

Issue History

Date Modified Username Field Change
2004-08-23 18:12 walter New Issue
2004-08-23 18:34 subik Note Added: 0002196
2004-08-24 20:41 walter Note Added: 0002217
2004-09-14 02:20 packetbell Note Added: 0002373
2005-06-23 07:24 ringerc Status new => acknowledged
2005-06-23 07:24 ringerc Note Added: 0005098
2006-05-13 21:38 christoph_s Relationship added related to 0003813
2006-06-17 04:23 porter235 Note Added: 0011656
2006-10-12 10:29 zapletal Note Added: 0012935
2006-10-12 10:57 subik Note Added: 0012937
2006-10-29 20:59 subik Status acknowledged => assigned
2006-10-29 20:59 subik Assigned To => subik
2006-10-29 21:22 cbradney Note Added: 0013180
2006-10-30 07:10 subik Note Added: 0013182
2006-11-04 23:36 jeffz Note Added: 0013276
2006-11-06 07:20 subik Relationship added related to 0004467
2010-12-10 14:38 user3523 Note Added: 0025016
2015-08-31 12:08 Kunda Note Added: 0036128
2016-01-24 01:31 Kunda Patch => No
2016-01-24 01:31 Kunda Target Version => Future Release - Nice to have
2016-01-24 01:31 Kunda Summary Mail-Merge => Mail-Merge (update: Scribus Generator)
2016-01-24 01:31 Kunda Additional Information Updated
2019-11-26 21:21 ale Assigned To subik => ale