aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2019-05-31 22:09:11 +0100
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2019-05-31 22:09:11 +0100
commitad7a043b2f07bfbe28ea30e8a51bc616bc01f28a (patch)
tree923d73215fc8611768b3242bc03eef5efaf2fcd1
parentreadme fixes (diff)
downloadpaper2remarkable-ad7a043b2f07bfbe28ea30e8a51bc616bc01f28a.tar.gz
paper2remarkable-ad7a043b2f07bfbe28ea30e8a51bc616bc01f28a.zip
add support for adding blank pages
-rwxr-xr-xarxiv2remarkable.py48
1 files changed, 39 insertions, 9 deletions
diff --git a/arxiv2remarkable.py b/arxiv2remarkable.py
index 08beaca..bedfc7e 100755
--- a/arxiv2remarkable.py
+++ b/arxiv2remarkable.py
@@ -46,6 +46,7 @@ class Provider(metaclass=abc.ABCMeta):
verbose=False,
upload=True,
debug=False,
+ blank=False,
remarkable_dir="/",
rmapi_path="rmapi",
pdfcrop_path="pdfcrop",
@@ -55,6 +56,7 @@ class Provider(metaclass=abc.ABCMeta):
self.verbose = verbose
self.upload = upload
self.debug = debug
+ self.blank = blank
self.remarkable_dir = remarkable_dir
self.rmapi_path = rmapi_path
self.pdfcrop_path = pdfcrop_path
@@ -111,6 +113,22 @@ class Provider(metaclass=abc.ABCMeta):
self.log("Created filename: %s" % name)
return name
+ def blank_pdf(self, filepath):
+ if not self.blank:
+ return filepath
+
+ self.log("Adding blank pages")
+ input_pdf = PyPDF2.PdfFileReader(filepath)
+ output_pdf = PyPDF2.PdfFileWriter()
+ for page in input_pdf.pages:
+ output_pdf.addPage(page)
+ output_pdf.addBlankPage()
+
+ output_file = os.path.splitext(filepath)[0] + "-blank.pdf"
+ with open(output_file, "wb") as fp:
+ output_pdf.write(fp)
+ return output_file
+
def crop_pdf(self, filepath):
self.log("Cropping pdf file")
status = subprocess.call(
@@ -260,7 +278,12 @@ class Provider(metaclass=abc.ABCMeta):
self.retrieve_pdf(src, tmp_filename)
self.check_file_is_pdf(tmp_filename)
- ops = [self.dearxiv, self.crop_pdf, self.shrink_pdf]
+ ops = [
+ self.dearxiv,
+ self.crop_pdf,
+ self.blank_pdf,
+ self.shrink_pdf,
+ ]
intermediate_fname = tmp_filename
for op in ops:
intermediate_fname = op(intermediate_fname)
@@ -507,6 +530,12 @@ def parse_args():
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
parser.add_argument(
+ "-b",
+ "--blank",
+ help="Add a blank page after every page of the PDF",
+ action="store_true",
+ )
+ parser.add_argument(
"-v", "--verbose", help="be verbose", action="store_true"
)
parser.add_argument(
@@ -565,14 +594,15 @@ def main():
exception("Input not valid, no provider can handle this source.")
prov = provider(
- args.verbose,
- not args.no_upload,
- args.debug,
- args.remarkable_dir,
- args.rmapi,
- args.pdfcrop,
- args.pdftk,
- args.gs,
+ verbose=args.verbose,
+ upload=not args.no_upload,
+ debug=args.debug,
+ blank=args.blank,
+ remarkable_dir=args.remarkable_dir,
+ rmapi_path=args.rmapi,
+ pdfcrop_path=args.pdfcrop,
+ pdftk_path=args.pdftk,
+ gs_path=args.gs,
)
prov.run(args.input, filename=args.filename)