home
·
contact
·
privacy
projects
/
misc
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
83c6b32
)
Bookmaker: Reduce reportlab dependency to --nup4 usage.
author
Christian Heller
<c.heller@plomlompom.de>
Sun, 24 Sep 2023 16:47:35 +0000
(18:47 +0200)
committer
Christian Heller
<c.heller@plomlompom.de>
Sun, 24 Sep 2023 16:47:35 +0000
(18:47 +0200)
bookmaker.py
patch
|
blob
|
history
diff --git
a/bookmaker.py
b/bookmaker.py
index bf9eba838d9c8872c7f551805ebccedde310d6e3..e3e91886add8e1343aae7bc206280ccf6b169f6e 100755
(executable)
--- a/
bookmaker.py
+++ b/
bookmaker.py
@@
-13,14
+13,12
@@
try:
import pypdf
except ImportError:
fail_with_msg("Can't run without pypdf installed.")
import pypdf
except ImportError:
fail_with_msg("Can't run without pypdf installed.")
-try:
- from reportlab.lib.pagesizes import A4
-except ImportError:
- fail_with_msg("Can't run without reportlab installed.")
# some constants
# some constants
-A4_WIDTH, A4_HEIGHT = A4
POINTS_PER_CM = 10 * 72 / 25.4
POINTS_PER_CM = 10 * 72 / 25.4
+A4_WIDTH = 21 * POINTS_PER_CM
+A4_HEIGHT = 29.7 * POINTS_PER_CM
+A4 = (A4_WIDTH, A4_HEIGHT)
CUT_DEPTH = 1.95 * POINTS_PER_CM
CUT_WIDTH = 1.05 * POINTS_PER_CM
MIDDLE_POINT_DEPTH = 0.4 * POINTS_PER_CM
CUT_DEPTH = 1.95 * POINTS_PER_CM
CUT_WIDTH = 1.05 * POINTS_PER_CM
MIDDLE_POINT_DEPTH = 0.4 * POINTS_PER_CM
@@
-195,6
+193,11
@@
def parse_args():
def main():
args = parse_args()
def main():
args = parse_args()
+ if args.nup4:
+ try:
+ import reportlab
+ except ImportError:
+ raise ImportError("-n: need reportlab library installed for --nup4")
# select pages from input files
pages_to_add = []
# select pages from input files
pages_to_add = []
@@
-397,11
+400,10
@@
def main():
print("merged page number %d (of %d)" % (page_count, len(pages_to_add)))
i += 1
if i > 3:
print("merged page number %d (of %d)" % (page_count, len(pages_to_add)))
i += 1
if i > 3:
- from reportlab.pdfgen import canvas
if args.analyze:
# borders
packet = io.BytesIO()
if args.analyze:
# borders
packet = io.BytesIO()
- c = canvas.Canvas(packet, pagesize=A4)
+ c =
reportlab.pdfgen.
canvas.Canvas(packet, pagesize=A4)
c.setLineWidth(0.1)
c.line(0, A4_HEIGHT, A4_WIDTH, A4_HEIGHT)
c.line(0, half_height, A4_WIDTH, half_height)
c.setLineWidth(0.1)
c.line(0, A4_HEIGHT, A4_WIDTH, A4_HEIGHT)
c.line(0, half_height, A4_WIDTH, half_height)
@@
-420,7
+422,7
@@
def main():
x_right_SPINE_LIMIT = A4_WIDTH - x_left_SPINE_LIMIT
if args.analyze or front_page:
packet = io.BytesIO()
x_right_SPINE_LIMIT = A4_WIDTH - x_left_SPINE_LIMIT
if args.analyze or front_page:
packet = io.BytesIO()
- c = canvas.Canvas(packet, pagesize=A4)
+ c =
reportlab.pdfgen.
canvas.Canvas(packet, pagesize=A4)
if args.analyze:
# # spine lines
c.setLineWidth(0.1)
if args.analyze:
# # spine lines
c.setLineWidth(0.1)
@@
-462,5
+464,5
@@
def main():
if __name__ == "__main__":
try:
main()
if __name__ == "__main__":
try:
main()
- except
ValueError
as e:
+ except
(ImportError, ValueError)
as e:
fail_with_msg(e)
fail_with_msg(e)