diff options
| author | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2020-02-23 16:38:25 +0000 |
|---|---|---|
| committer | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2020-02-23 16:38:25 +0000 |
| commit | 780411e46e07168cc2321e7c62eef244420fccc6 (patch) | |
| tree | 6f1d734b3fbd266f73de4805882759a9d07503da | |
| parent | Bump version and update changelog and readme (diff) | |
| download | paper2remarkable-780411e46e07168cc2321e7c62eef244420fccc6.tar.gz paper2remarkable-780411e46e07168cc2321e7c62eef244420fccc6.zip | |
Merge pdf cropping functions
| -rw-r--r-- | paper2remarkable/pdf_ops.py | 72 | ||||
| -rw-r--r-- | paper2remarkable/providers/_base.py | 10 |
2 files changed, 22 insertions, 60 deletions
diff --git a/paper2remarkable/pdf_ops.py b/paper2remarkable/pdf_ops.py index c7561e3..5e7e111 100644 --- a/paper2remarkable/pdf_ops.py +++ b/paper2remarkable/pdf_ops.py @@ -19,64 +19,24 @@ from .log import Logger logger = Logger() -def crop_pdf(filepath, pdftoppm_path="pdftoppm"): - """Crop the pdf file using Cropper - """ - logger.info("Cropping pdf file") - cropped_file = os.path.splitext(filepath)[0] + "-crop.pdf" - - cropper = Cropper(filepath, cropped_file, pdftoppm_path=pdftoppm_path,) - status = cropper.crop(margins=15) - - if not status == 0: - logger.warning("Failed to crop the pdf file at: %s" % filepath) - return filepath - if not os.path.exists(cropped_file): - logger.warning( - "Can't find cropped file '%s' where expected." % cropped_file - ) - return filepath - return cropped_file - - -def center_pdf(filepath, pdftoppm_path="pdftoppm"): - """Center the pdf file on the reMarkable - """ - logger.info("Centering pdf file") - centered_file = os.path.splitext(filepath)[0] + "-center.pdf" - - cropper = Cropper(filepath, centered_file, pdftoppm_path=pdftoppm_path,) - status = cropper.center() - - if not status == 0: - logger.warning("Failed to center the pdf file at: %s" % filepath) - return filepath - if not os.path.exists(centered_file): - logger.warning( - "Can't find centered file '%s' where expected." % centered_file - ) - return filepath - return centered_file - - -def right_pdf(filepath, pdftoppm_path="pdftoppm"): - """Right-align the pdf file on the reMarkable - """ - logger.info("Right-aligning pdf file") - righted_file = os.path.splitext(filepath)[0] + "-right.pdf" - - cropper = Cropper(filepath, righted_file, pdftoppm_path=pdftoppm_path) - status = cropper.right() - - if not status == 0: - logger.warning("Failed to right-align the pdf file at: %s" % filepath) +def prepare_pdf(filepath, operation, pdftoppm_path="pdftoppm"): + """Prepare pdf by cropping, centering, or right-aligning the flie""" + logger.info("Preparing PDF using %s operation" % operation) + prepared_file = os.path.splitext(filepath)[0] + "-prep.pdf" + cropper = Cropper(filepath, prepared_file, pdftoppm_path=pdftoppm_path) + if operation == "crop": + status = cropper.crop(margins=15) + elif operation == "center": + status = cropper.center() + elif operation == "right": + status = cropper.right() + else: + logger.warning("Unknown operation: %s" % operation) return filepath - if not os.path.exists(righted_file): - logger.warning( - "Can't find right-aligned file '%s' where expected" % righted_file - ) + if not status == 0 or not os.path.exists(prepared_file): + logger.warning("PDF prepare operation failed") return filepath - return righted_file + return prepared_file def blank_pdf(filepath): diff --git a/paper2remarkable/providers/_base.py b/paper2remarkable/providers/_base.py index c68caab..f8b895b 100644 --- a/paper2remarkable/providers/_base.py +++ b/paper2remarkable/providers/_base.py @@ -15,7 +15,7 @@ import tempfile import time from ._info import Informer -from ..pdf_ops import crop_pdf, center_pdf, right_pdf, blank_pdf, shrink_pdf +from ..pdf_ops import prepare_pdf, blank_pdf, shrink_pdf from ..utils import ( assert_file_is_pdf, download_url, @@ -90,13 +90,15 @@ class Provider(metaclass=abc.ABCMeta): # Wrappers for pdf operations that have additional arguments def crop_pdf(self, filepath): - return crop_pdf(filepath, pdftoppm_path=self.pdftoppm_path) + return prepare_pdf(filepath, "crop", pdftoppm_path=self.pdftoppm_path) def center_pdf(self, filepath): - return center_pdf(filepath, pdftoppm_path=self.pdftoppm_path) + return prepare_pdf( + filepath, "center", pdftoppm_path=self.pdftoppm_path + ) def right_pdf(self, filepath): - return right_pdf(filepath, pdftoppm_path=self.pdftoppm_path) + return prepare_pdf(filepath, "right", pdftoppm_path=self.pdftoppm_path) def shrink_pdf(self, filepath): return shrink_pdf(filepath, gs_path=self.gs_path) |
