summaryrefslogtreecommitdiff
path: root/weekly_planner_generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'weekly_planner_generator.py')
-rwxr-xr-xweekly_planner_generator.py47
1 files changed, 45 insertions, 2 deletions
diff --git a/weekly_planner_generator.py b/weekly_planner_generator.py
index d5bd90c..52bc091 100755
--- a/weekly_planner_generator.py
+++ b/weekly_planner_generator.py
@@ -2,7 +2,10 @@
import argparse
import calendar
+import logging
import os
+import subprocess
+import sys
import jinja2
@@ -29,20 +32,60 @@ def main():
continue
last_monday = week[0]
- with open("build/week_on_two_pages-A6-{year}-{page:02}.svg".format(
+ with open("build/week_on_two_pages-A6-{year}-{page:03}.svg".format(
year=year,
page=page,
), 'w') as fp:
fp.write(template_verso.render(week=week))
page += 1
- with open("build/week_on_two_pages-A6-{year}-{page:02}.svg".format(
+ with open("build/week_on_two_pages-A6-{year}-{page:03}.svg".format(
year=year,
page=page,
), 'w') as fp:
fp.write(template_recto.render(week=week))
page += 1
+ inkscape_commands = ";\n".join([
+ (
+ "file-open:build/{svg};"
+ + " export-type: pdf;"
+ + " export-filename:build/{pdf};"
+ + " export-text-to-path;"
+ + " export-do"
+ ).format(
+ svg = s,
+ pdf = os.path.splitext(s)[0] + ".pdf",
+ )
+ for s in os.listdir("build")
+ ])
+ try:
+ subprocess.run(
+ ["inkscape", "--shell" ],
+ input=inkscape_commands,
+ text=True,
+ )
+ except FileNotFoundError:
+ logging.warning("Inkscape is not installed, can't convert to pdf")
+ logging.warning("Stopping here, you can use the svgs as you like")
+ sys.exit(1)
+
+ pdf_pages = sorted([
+ os.path.join("build", p)
+ for p in os.listdir("build")
+ if p.endswith(".pdf")
+ ])
+ try:
+ subprocess.run([
+ "pdfjam",
+ "--outfile", "weekly_planner_A6.pdf",
+ *pdf_pages
+ ])
+ except FileNotFoundError:
+ logging.warning("pdfjam is not installed")
+ logging.warning("you will have to join the pdf pages yourself")
+ sys.exit(1)
+
if __name__ == '__main__':
main()