From 667c004c6ee5963c7b798f28de4a28973a23ae20 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 9 Sep 2019 20:06:37 +0530 Subject: [PATCH] gnu: Add stapler. * gnu/packages/pdf.scm (stapler): New variable. --- gnu/packages/pdf.scm | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index d45a78222c..9c7cc0b7d2 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016, 2017 Marius Bakke ;;; Copyright © 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Julien Lepiller -;;; Copyright © 2016 Arun Isaac +;;; Copyright © 2016, 2019 Arun Isaac ;;; Copyright © 2017, 2018 Leo Famulari ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017, 2018 Rene Saavedra @@ -1116,3 +1116,45 @@ presentation. The input files processed by pdfpc are PDF documents.") rendering of the file. The rendering is done by creating outline curves through the Pango @code{ft2} backend.") (license license:lgpl2.0+)))) + +(define-public stapler + (package + (name "stapler") + (version "0.3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hellerbarde/stapler") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06w7xanzr7cicqik62g7zqs57j4y6fc7hflrc1rlmphxx40hkg6r")))) + (build-system python-build-system) + (inputs + `(("python2-pypdf2" ,python2-pypdf2))) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-pypdf-version-requirement + ;; A PyPDF2 version requirement of 1.25.1 is hard-coded in + ;; setup.py. Relax it to work with any version of PyPDF2. + (lambda _ + (substitute* "setup.py" + (("PyPDF2==1.25.1") "PyPDF2")) + #t))))) + (home-page "https://github.com/hellerbarde/stapler") + (synopsis "PDF manipulation tool") + (description "Stapler is a pure Python alternative to PDFtk, a tool for +manipulating PDF documents from the command line. It supports + +@itemize +@item cherry-picking pages and concatenating them into a new file +@item splitting a PDF document into single pages each in its own file +@item merging PDF documents with their pages interleaved +@item displaying metadata in a PDF document +@item displaying the mapping between logical and physical page numbers +@end itemize") + (license license:bsd-3)))