aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2019-06-13 16:36:05 +0100
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2019-06-13 16:36:05 +0100
commitbf3d0b95d8149f46df8b3109f4a3c78ee742fbd7 (patch)
treee59ad137f1cf7a55bc108de4434edf3ed88768de
parentbump version (diff)
parentMerge branch 'master' into center_pdf (diff)
downloadpaper2remarkable-bf3d0b95d8149f46df8b3109f4a3c78ee742fbd7.tar.gz
paper2remarkable-bf3d0b95d8149f46df8b3109f4a3c78ee742fbd7.zip
Merge branch 'center_pdf'
-rwxr-xr-xarxiv2remarkable.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/arxiv2remarkable.py b/arxiv2remarkable.py
index eec1318..734a9ea 100755
--- a/arxiv2remarkable.py
+++ b/arxiv2remarkable.py
@@ -37,6 +37,9 @@ HEADERS = {
"Safari/537.36"
}
+RM_WIDTH = 1404
+RM_HEIGHT = 1872
+
class Provider(metaclass=abc.ABCMeta):
""" ABC for providers of pdf sources """
@@ -46,6 +49,7 @@ class Provider(metaclass=abc.ABCMeta):
verbose=False,
upload=True,
debug=False,
+ center=False,
blank=False,
remarkable_dir="/",
rmapi_path="rmapi",
@@ -56,6 +60,7 @@ class Provider(metaclass=abc.ABCMeta):
self.verbose = verbose
self.upload = upload
self.debug = debug
+ self.center = center
self.blank = blank
self.remarkable_dir = remarkable_dir
self.rmapi_path = rmapi_path
@@ -113,6 +118,37 @@ class Provider(metaclass=abc.ABCMeta):
self.log("Created filename: %s" % name)
return name
+ def center_pdf(self, filepath):
+ if not self.center:
+ return filepath
+ pdf_file = PyPDF2.PdfFileReader(filepath)
+ mediaBox = pdf_file.getPage(0).mediaBox
+ width = mediaBox[2] - mediaBox[0]
+ height = mediaBox[3] - mediaBox[1]
+ padding = (height * RM_WIDTH - width * RM_HEIGHT) / RM_HEIGHT
+ left_margin = padding / 2 + 15
+
+ self.log("Centering PDF file")
+ status = subprocess.call(
+ [
+ self.pdfcrop_path,
+ "--margins",
+ "%i 40 15 15" % left_margin,
+ filepath,
+ ],
+ stdout=subprocess.DEVNULL,
+ )
+ if not status == 0:
+ self.warn("Failed to crop the pdf file at: %s" % filepath)
+ return filepath
+ centered_file = os.path.splitext(filepath)[0] + "-crop.pdf"
+ if not os.path.exists(centered_file):
+ self.warn(
+ "Can't find centered file '%s' where expected." % centered_file
+ )
+ return filepath
+ return centered_file
+
def blank_pdf(self, filepath):
if not self.blank:
return filepath
@@ -281,6 +317,7 @@ class Provider(metaclass=abc.ABCMeta):
ops = [
self.dearxiv,
self.crop_pdf,
+ self.center_pdf,
self.blank_pdf,
self.shrink_pdf,
]
@@ -551,6 +588,12 @@ def parse_args():
action="store_true",
)
parser.add_argument(
+ "-c",
+ "--center",
+ help="Center the PDF on the page, instead of left align",
+ action="store_true",
+ )
+ parser.add_argument(
"--filename",
help="Filename to use for the file on reMarkable",
default=None,
@@ -597,6 +640,7 @@ def main():
verbose=args.verbose,
upload=not args.no_upload,
debug=args.debug,
+ center=args.center,
blank=args.blank,
remarkable_dir=args.remarkable_dir,
rmapi_path=args.rmapi,