krop is a simple graphical tool to crop the pages of PDF files.
It is written in Python and relies on PyQT, python-poppler-qt5 and PyPDF2 for its functionality. A unique feature of krop is its ability to automatically split pages into subpages to fit the limited screen size of devices such as eReaders. This is particularly useful, if your eReader does not support convenient scrolling.
For more information and how to install krop, see: http://arminstraub.com/software/krop
krop (0.6.0) 2020-06-09 -- Armin Straub 10 months ago
+ Fixed aspect ratios, like letter size, can be chosen for selections.
+ Selections (or a grid of selections) for the full page can now be created
using the context menu or by pressing Insert (or Shift+Insert). Also
introduced the command line option --grid to create a grid of selections on
the initial page.
+ Auto trimming margins can now inspect all pages.
+ New option for whether to include pages without selections in the output.
+ Added the command line options --optimize (thanks to Ondrej Tichacek for
suggesting this feature) and --exceptions.
+ Implemented several keyboard shortcuts including Shift+Arrow to move
current selection and Delete to remove it.
* Keep track of current selection and highlight it visually.
* Don't fail on PDFs that are encrypted with an empty password.
* Remember window geometry and fit in view setting.
krop (0.6.0) 2020-06-09 -- Armin Straub 10 months ago
+ Fixed aspect ratios, like letter size, can be chosen for selections.
+ Selections (or a grid of selections) for the full page can now be created
using the context menu or by pressing Insert (or Shift+Insert). Also
introduced the command line option --grid to create a grid of selections on
the initial page.
+ Auto trimming margins can now inspect all pages.
+ New option for whether to include pages without selections in the output.
+ Added the command line options --optimize (thanks to Ondrej Tichacek for
suggesting this feature) and --exceptions.
+ Implemented several keyboard shortcuts including Shift+Arrow to move
current selection and Delete to remove it.
* Keep track of current selection and highlight it visually.
* Don't fail on PDFs that are encrypted with an empty password.
* Remember window geometry and fit in view setting.
krop (0.5.1) 2018-10-27 -- Armin Straub 10 months ago
* Replace and extend the README file with a MarkDown version (thanks to
Eduardo Montenegro for doing this).
+ Add a manpage.
* Fix a Qt5 related bug when selecting filename for saving (thanks to
Lin-Buo-Ren for reporting this).
krop (0.5.0) 2018-02-11 -- Armin Straub 3 years ago
+ Support PyQt5.
+ Use Ghostscript to optionally optimize the final PDF (thanks to Mathias Rav for the idea and code).
krop (0.4.13) 2017-07-22 -- Armin Straub 3 years ago
+ Added the command line option --go, which outputs a PDF using the choices
from --autotrim, --rotate and --whichpages, without opening the krop GUI
(thanks to Mirko Weihrauch for the idea).
+ Padding for auto trimming can be specified as in CSS using one to four
values. This option is now also available on the command line as
--autotrim-padding. (Thanks to Jonah Langlieb for providing sanity checks!)
* Fix incorrect string handling when opening files from the command line
using python3 (thanks to Giuliano Costantini for observing and fixing this).
krop (0.4.12) 2017-01-22 -- Armin Straub 4 years ago
* Use CropBox instead of MediaBox when determining the region to be cropped (thanks to Tim Mueller for observing and fixing this).
* Use a more proper Python package structure (thanks to Xavier Corredor Llano for advice).
krop (0.4.11) 2016-08-29 -- Armin Straub 4 years ago
* Make krop compatible with both python2 and python3.
roctheme
5 years ago
in terminal it works:
krop <filename>
ProblemType: Crash
CurrentDesktop: KDE
Date: Tue Aug 11 08:57:21 2015
ExecutablePath: /usr/share/krop/krop.py
ExecutableTimestamp: 1400944165
InterpreterPath: /usr/bin/python2.7
ProcCmdline: /usr/bin/python /usr/bin/krop /home/user/File.pdf
ProcCwd: /home/user
ProcEnviron:
LANGUAGE=de
PATH=(custom, user)
XDG_RUNTIME_DIR=<set>
LANG=de_DE.UTF-8
SHELL=/bin/bash
...
krop.py crashed with TypeError in main(): decode() argument 1 must be string, not None
Report
arminstraub
5 years ago
The following should fix the crash: in krop.py, replace the line
fileName = args.file.decode(sys.stdin.encoding)
with
fileName = args.file.decode(sys.stdin.encoding or sys.getdefaultencoding())
Please let me know if this does not work as intended.
This change will be included in the next update of krop.
Report
roctheme
5 years ago
Thank you!
Great App.
Report
epsilom
6 years ago
Report
arminstraub
5 years ago
Report
Putin
6 years ago
Report
arminstraub
6 years ago
Report
OdinEidolon
6 years ago
Traceback (most recent call last):
File "/usr/bin/krop", line 19, in <module>
krop.krop.main()
File "/usr/lib/python2.7/site-packages/krop/krop.py", line 54, in main
from mainwindow import MainWindow
File "/usr/lib/python2.7/site-packages/krop/mainwindow.py", line 30, in <module>
from vieweritem import ViewerItem
File "/usr/lib/python2.7/site-packages/krop/vieweritem.py", line 20, in <module>
from popplerqt4 import Poppler
RuntimeError: the sip module implements API v11.0 but the popplerqt4 module requires API v10.1
Report
arminstraub
6 years ago
Not sure what may have caused the problem; does the suggestion at https://groups.google.com/forum/#!topic/frescobaldi/ViHxQpW4470 make sense to you?
Report
OdinEidolon
7 years ago
I also have the bug which prevents Krop to be used via the right-clivk "open with" menu.
Three more suggestions in order of importance:
1) Provide a way to allow to crop many different pdf files with the same cropping geometry/selection. Or at least speed up the process. (eg: option to remember output folder and cropping region for the next file, and button to open the next file in the working folder)
2)Provide a button to automatically select a region without having to do it manually. Okular does have such a button that says "trim margins".
3)Krop seems to forget, if closed and reopened, the last opened files and their folder.
Thank you!
Report
arminstraub
6 years ago
Report
arminstraub
7 years ago
Report
nitsnatsnok
7 years ago
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 26: ordinal not in range(128)
Great program, thanks a lot!!!
Report
arminstraub
7 years ago
Report
roctheme
7 years ago
Debian Package work with Kubuntu 13.04 too.
Report
roctheme
7 years ago
e.g.: krop /home/user/Dokumente/test.pdf
krop: Unexpected argument '/home/user/Dokumente/test.pdf'.
krop: Use --help to get a list of available command line options.
Report
arminstraub
7 years ago
The bug you mention will be fixed in the next version.
(To fix this silly regression right now you can replace the line 'KCmdLineArgs.init (sys.argv, aboutData)' in krop.py by the line 'KCmdLineArgs.init(aboutData)'.)
Report
roctheme
7 years ago
KCmdLineArgs.init(aboutData) fixes the command line problem in Kubuntu.
context menu "open with->krop" now work too in Dolphin.
Note, krop has no icon in Kubuntu. Perhaps you can use this system icon:
Icon=edit-cut
Report
arminstraub
7 years ago
Report
cgonzalez
7 years ago
Report