Git Product home page Git Product logo

plakativ's Introduction

Travis Status Appveyor Status

plakativ

Plakativ is German for "striking" or "eye-catching" and comes from the German word "Plakat" which means poster in English.

This software allows one to stretch a PDF document or raster image across multiple pages that can then be printed on a common inkjet or laser printer, cut and glued together into a larger poster.

Features

Plakativ allows one to create a poster using one of three different approaches:

  • I want a poster that fits into size X
  • I want a poster Y times the input page page area
  • I have Z pages of paper and want to print the biggest possible poster on them

Plakativ works on Windows, Linux and MacOS. It offers a GUI based on tkinter, a command line interface and can be used as a Python module. Everything is inside a single file.

Demo

The demo shows a user choosing between the three different ways to define the poster size. Either by picking a size that the input will be fit into, by multiplying the area of the input page or by maximizing the poster size, given a number of pages one is willing to print on.

Installation

Plakativ is available from pypi: https://pypi.org/project/plakativ/

Thus you can just run pip install plakativ on your platform of choice.

For Microsoft Windows users, PyInstaller based .exe files are produced by appveyor. If you don't want to install Python before using plakativ you can head to appveyor and click on "Artifacts" to download the latest version: https://ci.appveyor.com/project/josch/plakativ

Complex Layouter

Oftentimes there is a way to create a poster of a specific size with less pages than would be needed with a regular arrangement of pages into rows and columns. For regular poster sizes, a more complex layout can save up to 3 or 5 pages of paper. If the regular simple layout and the complex layout require the same number of pages for a particular poster size, then plakativ will fall back to the simple layout. The following animation shows the complex layout that plakativ chooses when asked to produce the largest possible poster using X pages. The number of pages X can be seen in the center.

Bugs

https://gitlab.mister-muffin.de/josch/plakativ/issues

TODO

While basic functionality is implemented, lots of work remains to be done:

  • help button
  • changing units
  • changing language
  • make PyMuPDF dependency optional
  • optionally, use pypdf2 to read/write PDF
  • improve module interface

Comparison to similar software

PosteRazor

http://posterazor.sourceforge.net/

PosteRazor served as the inspiration for this software. But in contrast to PosteRazor, plakativ allows PDF documents as input and outputs PDF document with the exact same quality as the input. It is thus not necessary anymore to first do a lossy rasterization of an input PDF so that one can work with PosteRazor.

pdfposter

https://pdfposter.readthedocs.io/en/stable/

  • no GUI
  • cumbersome box definition
  • no page borders for gluing
  • superfluous empty pages
  • only very simple layouter
  • scaling by width/height instead by area makes doubling unintuitive

plakativ's People

Contributors

josch avatar wikinaut avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.