aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2020-02-23 16:38:25 +0000
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2020-02-23 16:38:25 +0000
commit780411e46e07168cc2321e7c62eef244420fccc6 (patch)
tree6f1d734b3fbd266f73de4805882759a9d07503da
parentBump version and update changelog and readme (diff)
downloadpaper2remarkable-780411e46e07168cc2321e7c62eef244420fccc6.tar.gz
paper2remarkable-780411e46e07168cc2321e7c62eef244420fccc6.zip
Merge pdf cropping functions
-rw-r--r--paper2remarkable/pdf_ops.py72
-rw-r--r--paper2remarkable/providers/_base.py10
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)