Flyer Composer

Rearrange PDF pages to print as flyers on one paper

Flyer Composer can be used to prepare one- or two-sided flyers for printing on one sheet of paper.

Imagine you have designed a flyer in A6 format and want to print it using your A4 printer. Of course, you want to print four flyers on each sheet. This is where Flyer Composer steps in, creating a PDF which holds your flyer four times. If you have a second page, Flyer Composer can arrange it the same way - even if the second page is in a separate PDF file.

Download & Installation

Flyer Composer for Windows and Linux can be downloaded from http://crazy-compilers-com/flyer-composer.

Instructions for Windows Users

  1. Flyer Composer requires Python 3. If you don’t have Python 3 installed already, download and install Python 3.7 (or a newer version) from https://python.org/download/

    During installation, make sure to check “Include into PATH”.

  2. If you already have Python installed, please check that your Python directory (normally C:\Python37 for Python 3.7) and the Python Scripts directory (normally C:\Python37\Scripts) are in the system path. If not, just add them in My Computer ‣ Properties ‣ Advanced ‣ Environment Variables to the Path system variable.

  3. Install Flyer Composer and all requirements by running

    pip install flyer-composer
    

    If the command pip is unknown to you system, please refer to the pip homepage for help.

  4. The GUI can then be found in C:\Python37\Scripts\ (assuming you are using Python 3.7.

    Or run the console command flyer-composer --help to get detailed help.

Instructions for GNU/Linux and other Operating Systems

Most current GNU/Linux distributions provide packages for Flyer Composer and Flyer Composer GUI. Simply search your distribution’s software catalog.

Also many vendors provide Python, and some even provide Flyer Composer and Flyer Composer GUI. Please check your vendor’s software repository.

If your distribution or vendor does not provide a current version of Flyer Composer please read on.

If your vendor does not provide python3 please download Python 3.7 from https://www.python.org/download/ and follow the installation instructions there.

If you distribution or vendor missed providing pip3, alongside python3, please check your vendor’s or distribution’s software repository for a package called pip3 or python3-pip. If this is not provided, please refer to the pip homepage for help.

Optionally you might want to install PyPDF2, PyQt5 and python-poppler-qt5 - which are requirements for Flyer Composer - provided by your distribution or vendor, so at least these package will be maintained by your distribution. Check for packages named python3-pypdf2, python3-qt5-widgets, python3-qt5-gui, python3-qt5-network, python3-qt5-xml, python3-poppler-qt5, or that like.

Then continue with Installing Flyer Composer using pip3 below.

Installing Flyer Composer using pip3

After installing Python (and optionally the other required packages), just run:

sudo pip3 install flyer-composer

to install Flyer Composer for all users. For installing Flyer Composer for yourself only, run:

pip3 install --user flyer-composer

If your system does not have network access

Note

Installation of poppler and python-poppler-qt5 is missing here.

  1. Download

  2. Run

    sudo pip3 install flyer-composer-*.tar.gz PyPDF2-*.tar.gz \
              PyQt5-*.whl
    

    respective

    pip3 install --user flyer-composer-*.tar.gz PyPDF2-*.tar.gz PyQt5-*.whl
    

Usage

Flyer Composer can be used to prepare one- or two-sided flyers for printing on one sheet of paper.

Imagine you have designed a flyer in A6 format and want to print it using your A4 printer. Of course, you want to print four flyers on each sheet. This is where Flyer Composer steps in, creating a PDF which holds your flyer four times. If you have a second page, Flyer Composer can arrange it the same way - even if the second page is in a separate PDF file.

This also work if your input file was designed for e.g. A2: it will simply be scaled down to A6 and placed four times in the sheet. And, of course, PDF Flyer Composer supports other flyer sizes or paper sizes, too.

This is much like pdfnup (or psnup), except that the same page is put the paper several times.

Flyer Composer contains two programs: a Qt-based GUI one (flyer-composer-gui) and a command line one (flyer-composer).

Options

General Options

-h, --help Show help message and exit
--help-media-names
 List available media and distance names and exit
--help-box-definitions
 Show help about specifying BOX for –media-size and –flyer-size and exit
--version Show program’s version number and exit
-n, --dry-run Show what would have been done, but do not generate files.

Defining Input

-F INTEGER, --front INTEGER
 First page of flyer (default: first page)
-B INTEGER, --back INTEGER
 Back page of flyer (default: no back page)
-A, --art-box Use the content area defined by the ArtBox (default: use the area defined by the TrimBox)

Defining Output

-f BOX, --flyer-size BOX
 Specify the finished flyer size (defaults to media size).
-m BOX, --media-size BOX
 Specify the page size of the output media (default: a4)

Box Definition

The BOX mentioned above is a specification of horizontal and vertical size. The syntax is as follows (with multiplier being specified optionally):

box = [ multiplier ] unit

multiplier = number “x” number

unit = medianame or distancename

Many international media names are recognised by the program, in upper and lower case, and can be shortened to their first few characters, as long as unique. For instance ‘A0’, ‘Let’. Distance names are like ‘cm’, ‘inch’, ‘ft’.

Medias are typically not quadratic but rectangular, which means width and height differ. Thus using media names is a bit tricky:

10x20cm:obvious: 10 cm x 20 cm (portrait)
20x10cm:same as 10x20cm, since all boxes are rotated to portrait format

Now when using media names it gets tricky:

1x1a4:

same as approx. 21x29cm (21 cm x 29 cm, portrait)

1x2a4:

same as approx. 21x58cm (21 cm x 58 cm, portrait)

This are two a4 pages put together at the small side: One portrait page wide and two portrait pages high.

2x1a4:

same as approx. 42x29cm, which is rotated to portrait and is (approx.) the same as 29x42cm (29 cm x 42 cm)

This are two a4 pages put together at the long side: Two portrait pages wide and one portrait page high.

Donations

If you like Flyer Composer, please consider supporting me in some way.

Bank transfers

While PayPal donations are still very much appreciated PayPal takes a large cut and has rather questionable business practices.

If you have the ability to make SEPA bank transfers at a low cost (for example if you live within the EU) please contact Hartmut to ask for his bank details.

I trust in the power of free and open source software and thus made the entire source code publicly available for every one to use. However, it takes a lot of time to develop the software and manage the community. And I still need to make my living.

So, if you like the software, please consider donating, especially if your organization benefits from this project.

Thank you!

QR-Code for Bitcoin address

Bitcoin address

  • Bitcoin: 13qryeeJR5Hc7vR5AmQMWDuLzDEgSDNJi2
  • Bank-Transfer (prefered): If you have the ability to make SEPA bank transfers at a low cost please contact me and I’ll send you the account details. If you want a bill, please state so and also leave your name and address.
  • PayPal: Donate - if you want a bill, please state so and leave your name, address and email-address.
  • Please contact me to arrange some other kind of project grant, e.g. consulting or support.

Changes

1.0rc2 (2020-03-04)

  • Add support for Windows
  • New icon, new logo
  • Add support for using MuPDF for generating the pae previews.
  • Provide MSI packages for Windows for easy installation
  • Provide package for Linux for easy installation
  • Automate releases

1.0rc1 (2020-02-12)

  • Initial public release.

Development

The source of Flyer Composer and its siblings is maintained at GitLab. Patches and pull-requests are hearty welcome.

  • Please submit bugs and enhancements to the Issue Tracker.

  • You may browse the code at the Repository Browser. Or you may check out the current version by running

    git clone https://gitlab.com/pdftools/flyer-composer.git