Browse Source

add a7 option

master
Schoenberger, Philipp 6 years ago
parent
commit
74a2f01817
  1. 1
      requirements.txt
  2. 156
      run.py

1
requirements.txt

@ -0,0 +1 @@
PyPDF2

156
run.py

@ -1,19 +1,53 @@
#!/usr/bin/python #!/usr/bin/python
import math
from datetime import timedelta from datetime import timedelta
from datetime import date from datetime import date
import locale import locale
import os
start_year = 2020
start_year = 2019
start_date = date(start_year, 01, 01) start_date = date(start_year, 01, 01)
end_date = date(start_year, 12, 31) end_date = date(start_year, 12, 31)
main_filename = "calender"
main_tex = main_filename + ".tex"
main_aux = main_filename + ".aux"
main_log = main_filename + ".log"
main_pdf = main_filename + ".pdf"
combine_filename = "combine"
combine_tex = combine_filename + ".tex"
combine_aux = combine_filename + ".aux"
combine_log = combine_filename + ".log"
combine_pdf = combine_filename + ".pdf"
combine2_filename = "combine2"
combine2_tex = combine2_filename + ".tex"
combine2_aux = combine2_filename + ".aux"
combine2_log = combine2_filename + ".log"
combine2_pdf = combine2_filename + ".pdf"
color_saturday = "orange"
color_sunday = "red"
color_weekday = "black"
color_lines = "black"
dates = '''
{
"Birthday": [
{ "date": "1.1.2020", "title": "Philipp1 Schoenberer" },
{ "date": "3.1.2020", "title": "Philipp3 Schoenberer" },
{ "date": "5.1.2020", "title": "Philipp5 Schoenberer" },
}
'''
def main(): def main():
# german # german
locale.setlocale(locale.LC_TIME, "de_DE") locale.setlocale(locale.LC_TIME, "de_DE")
fd = open("calender.tex", "w")
fd = open(main_tex, "w")
tex_write_header(fd) tex_write_header(fd)
tex_write_calender_overview(fd) tex_write_calender_overview(fd)
@ -22,6 +56,14 @@ def main():
tex_write_footer(fd) tex_write_footer(fd)
fd.close()
cmd = 'pdflatex ' + main_tex
os.system(cmd)
os.remove(main_aux)
os.remove(main_log)
def tex_write_header(fd): def tex_write_header(fd):
# \usepackage{fontspec}{} # \usepackage{fontspec}{}
@ -55,6 +97,8 @@ def tex_write_header(fd):
def tex_write_footer(fd): def tex_write_footer(fd):
fd.write(''' fd.write('''
\\ \\newpage
\\ \\newpage
\\end{document} \\end{document}
''') ''')
@ -165,6 +209,13 @@ def tex_write_weekly(fd):
fd.write('~' + last_weekday.strftime('%Y')) fd.write('~' + last_weekday.strftime('%Y'))
fd.write('\\hrule') fd.write('\\hrule')
if curr_date.weekday() == 5:
fd.write('\\color{' + color_saturday + '}')
elif curr_date.weekday() == 6:
fd.write('\\color{' + color_sunday + '}')
else:
fd.write('\\color{' + color_weekday + '}')
fd.write(''' fd.write('''
\\parbox[t][0.115\\paperheight]{\\textwidth}{ \\parbox[t][0.115\\paperheight]{\\textwidth}{
\\flushleft \\flushleft
@ -193,6 +244,7 @@ def tex_write_weekly(fd):
# start new page if sunday # start new page if sunday
if curr_date.weekday() == 6: if curr_date.weekday() == 6:
fd.write('\\newpage\n\r') fd.write('\\newpage\n\r')
fd.write('\\color{' + color_lines + '}')
for i in range(1, 18): for i in range(1, 18):
fd.write('\\hspace{8mm}\n\r') fd.write('\\hspace{8mm}\n\r')
fd.write('\\myhrulefill{0.5pt}\n\r') fd.write('\\myhrulefill{0.5pt}\n\r')
@ -204,5 +256,105 @@ def tex_write_weekly(fd):
''') ''')
def gen_page_include(page1, page2, filename, maxpages, nup):
s = "{"
if page1 < maxpages:
s += str(page1)
else:
s += str(maxpages)
s += ","
if page2 < maxpages:
s += str(page2)
else:
s += str(maxpages)
s += "}"
return "\\includepdf[pages=" + s + ", nup=" + nup + "]{" + filename + "}\n"
def combine_a7():
from PyPDF2 import PdfFileReader
pdf = PdfFileReader(open(main_pdf, 'rb'))
fd = open(combine_tex, "w")
fd.write("""
\\documentclass{article}
\\usepackage{pdfpages} % for \\includepdf[pages=-]
\\begin{document}
""")
# last page is empty
pdf_number = pdf.getNumPages()
seq = pdf_number
seq = float(seq) / float(2)
seq = math.ceil(seq)
seq = float(seq) / float(2)
seq = math.ceil(seq)
seq = int(seq)
for i in range(1, seq + 1):
fd.write(gen_page_include(seq * 4 - (2 * i - 1), 2 * i - 1, main_pdf, pdf_number, "1x2,landscape=true"))
fd.write(gen_page_include(2 * i, seq * 4 - (2 * i), main_pdf, pdf_number, "1x2,landscape=true"))
fd.write("""
\\end{document}
""")
fd.close()
cmd = 'pdflatex ' + combine_tex
os.system(cmd)
# os.remove(combine_aux)
# os.remove(combine_log)
print (seq)
print (seq * 4)
# now combine even aggain to get a6
pdf = PdfFileReader(open(combine_pdf, 'rb'))
fd = open(combine2_tex, "w")
fd.write("""
\\documentclass{article}
\\usepackage{pdfpages} % for \\includepdf[pages=-]
\\begin{document}
""")
# # last page is empty
pdf_number = pdf.getNumPages()
seq = pdf_number
seq = float(seq) / float(2)
seq = math.ceil(seq)
seq = float(seq) / float(2)
seq = math.ceil(seq)
seq = int(seq)
for i in range(1, seq + 1):
fd.write(gen_page_include(i*4-3,i*4-1, combine_pdf, pdf_number, "1x2,landscape=false"))
fd.write(gen_page_include(i*4-2, i*4, combine_pdf, pdf_number, "1x2,landscape=false"))
fd.write("""
\\end{document}
""")
fd.close()
cmd = 'pdflatex ' + combine2_tex
os.system(cmd)
# os.remove(combine2_aux)
# os.remove(combine2_log)
print (seq)
print (seq * 4)
if __name__ == "__main__": if __name__ == "__main__":
main() main()
combine_a7()
Loading…
Cancel
Save