plakativ - create posters and banners
usage: plakativ [-h] [-v] [-V] [--gui | --nogui]
- [--size LxL | --factor MULT | --maxpages NUM] [-o OUTPUT]
[--pagenum PAGENUM] [--pagesize LxL] [--border L[:L[:L[:L]]]] [--layouter
{simple,complex}] [--remove-alpha] [--cover-page] [--cutting-guides]
[--page-numbers] [--poster-border] [input]
Create large posters by printing and gluing together smaller
pages.
This program is for situations when you want to create a large
poster or banner but do not have a printer that supports large sheets of
paper. Plakativ allows one to enlarge and split a PDF across multiple pages,
creating another PDF with pages of the desired printable size. After
printing, the pages can be cut and glued together to form a larger poster.
Features:
- - lossless operation - no pixel artifacts when upscaling if PDF contains
vector graphics - GUI with preview functionality - complex layouter to
save paper - optimize by number of pages, output poster size or multiple
of input area - support for raster images as input if img2pdf is
available
- input
- input filename (default: stdin)
- -h, --help
- show this help message and exit
- -v, --verbose
- Makes the program operate in verbose mode, printing messages on standard
error.
- -V, --version
- Prints version information and exits.
- --gui
- run tkinter gui (default on Windows)
- --nogui
- don't run tkinter gui (default elsewhere)
- --size LxL
- Poster width/height either as width times height or one of the known paper
sizes (see below). Cannot be used together with --factor or
--maxpages.
- --factor
MULT
- Poster size as multiple of input page area. Cannot be used together with
--size or --maxpages.
- --maxpages
NUM
- Maximum possible poster size with the given number of pages. Cannot be
used together with --size or --factor.
- -o OUTPUT, --output
OUTPUT
- output filename (default: stdout)
- --pagenum
PAGENUM
- Page number of input PDF to turn into a poster (default: 1)
- --pagesize
LxL
- Width and height of the output pages or one of the known paper sizes (see
below). This is the paper size that you are printing on with your printer
(default: A4)
- --border
L[:L[:L[:L]]]
- The borders on each output page for gluing. This specifies how much the
pages overlap each other. If your printer cannot print borderless, then
this value should also be larger than the border up to which your printer
is able to print. The default unit is mm. Other possible units are cm, in
and pt. One value sets the border on all four sides. Multiple values are
separated by a colon. With two values, the first value sets top and bottom
border and the second value sets left and right border. With three values,
the first value sets the top border, the second value the left and right
border and the third value the bottom border. Four values set top, right,
bottom and left borders in that order.
- --layouter
{simple,complex}
- The algorithm arranging the individual pages making the poster. The simple
layout has all pages in the same orientation. The complex layout is able
to sometimes require less pages for the same poster size and is allowed to
rotate pages.
- --remove-alpha
- When the input is a raster image instead of a PDF document, plakativ can
remove the alpha channel for you. The resulting PDF poster might not be
lossless anymore.
- --cover-page
- Add a cover page as the first page which shows the resulting layout. This
is especially interesting for the complex layouter unless you like
puzzles.
- --cutting-guides
- Print light-gray dashed lines that surround the visible part of each page
and can help with easier cutting and gluing of the pages. This is
generally only needed if the poster does not contain enough detail for
accurate gluing.
- --page-numbers
- Print a small number of each page to uniquely identify each sheet. This is
especially useful in combination with --cover-page because the
numbers on the cover page correspond to the page numbers.
- --poster-border
- If the poster itself has a white background and it is important that the
final result has precisely the desired poster size, then this option will
print a light-gray dashed border around the whole poster, so that it can
be accurately cut to the correct overall size.
- There are three ways to set the size of the final poster. The desired
method is selected using the mutually exclusive options --size,
--factor and --maxpages. The --size option allows one
to specify a width and height into which the input will be fitted,
swapping width and height as necessary, to create the largest possible
poster with those dimensions while keeping the aspect ratio of the input.
The --factor option scales the area of the input by the given
multiplier. If the input is a DIN A4 page, then a factor of 2 will create
a DIN A3 poster. The --maxpages option allows one to specify a
maximum number of pages one is willing to print out and creates the
largest possible poster that can possibly be created with the given number
of pages. For example, printing a DIN A1 poster on DIN A4 pages with a
border of 15 mm will require 15 pages with the simple layouter engine.
With --maxpages=15 a slightly larger poster will be
generated but will make better use of the available number of pages of
paper. Using the complex layouter, an even bigger poster can be generated
with just 15 pages of paper by changing the orientation of some of
them.
- You can specify the short hand paper size names shown in the first column
in the table below as arguments to the --pagesize and
--imgsize options. The width and height they are mapping to is
shown in the second column. Giving the value in the second column has the
same effect as giving the short hand in the first column. The values are
case insensitive.
- A0
- 841mmx1189mm
- A1
- 594mmx841mm
- A2
- 420mmx594mm
- A3
- 297mmx420mm
- A4
- 210mmx297mm
- A5
- 148mmx210mm
- A6
- 105mmx148mm
- Legal
- 8.5inx14in
- Letter
- 8.5inx11in
- Tabloid
- 11inx17in
- The border on each page set using the --border option has two
purposes. Firstly, the border is useful for printers that do not support
borderless printing. Secondly, the border is the area where the individual
pages overlap and can be glued together. Before gluing, cut away the
border area where the printer was unable to print on. As long as you stay
within the distance set by the --border option, you don't need
precision tools to do the cutting but can cut freehand using a pair of
scissors. You only need to cut the borders from those edges that will end
up being glued onto another piece of paper. By keeping even the area at
the border your printer could not print on from the paper at the bottom
you maintain a larger area for the glue.
To run the tkinter GUI execute either:
- $ plakativ-gui
$ plakativ --gui
To use plakativ without GUI from the command line you can run:
- $ plakativ --size A1 --output=poster.pdf
input.pdf
This will create a file poster.pdf with multiple DIN A4 pages
which, after being cut and glued together will form a DIN A1 poster of the
content on the first page of input.pdf.
If img2pdf is available as a Python module, then plakativ can also
use raster images as input. Since img2pdf refuses to work on images with an
alpha channel, you can instruct plakativ to remove the alpha channel for you
with the --remove-alpha flag:
- $ plakativ --size A1 --output=poster.pdf --remove-alpha
input.png
Written by Johannes Schauer Marin Rodrigues
<josch@mister-muffin.de>
Report bugs at
https://gitlab.mister-muffin.de/josch/plakativ/issues