]> wagnertech.de Git - SVBaL.git/blob - python/eh_util/eh_abgleich/AWK/ausweis.py
Merge branch 'master' of http://wagnertech.de/git/SVBaL
[SVBaL.git] / python / eh_util / eh_abgleich / AWK / ausweis.py
1 #!/usr/bin/python3
2
3 import sys
4 from mitglied import Mitglied
5
6 """
7 Testaufruf:
8 ./ausweis.py Michael Wagner "25.5.1965" MitgliederausweisSVBaLVorlage_leer.pdf ./
9 """
10
11 def erzeuge_ausweis(mitglied: Mitglied, ausgabetext, hintergrund_pdf, ausgabe_pfad):
12     from PyPDF2 import PdfFileWriter, PdfFileReader
13     from datetime import date
14     import io
15     from reportlab.pdfgen import canvas
16     from reportlab.lib.pagesizes import letter
17     
18     packet = io.BytesIO()
19     can = canvas.Canvas(packet, pagesize=letter)
20     
21     # Adressfeld
22     can.setFont("Helvetica", 12)
23     can.drawString(70, 640, mitglied.anrede)
24     can.drawString(70, 625, mitglied.vorname+" "+mitglied.nachname)
25     can.drawString(70, 610, mitglied.strasse)
26     can.drawString(70, 590, mitglied.plz+" "+mitglied.ort)
27
28     # Datum
29     can.setFont("Helvetica", 9)
30     can.drawString(350, 520, "München, "+date.today().strftime('%d.%m.%Y'))
31     
32     # Anschreiben
33     can.drawString(70, 500, "Sehr geehrte/r "+mitglied.anrede+" "+mitglied.nachname+",")
34     text = can.beginText(70, 480)
35     text.textLines(ausgabetext)
36     can.drawText(text)
37     
38     
39     can.line(20, 180, 560, 180)
40     
41     # Ausweis
42     can.setFont("Helvetica", 12)
43     can.drawString(460, 100, mitglied.mitgliedsnr)
44     can.drawString(330, 80, mitglied.vorname+" "+mitglied.nachname)
45     can.setFont("Helvetica", 9)
46     can.drawString(400, 56, mitglied.geburtsdatum)
47     can.drawString(400, 42, mitglied.eintrittsdatum)
48     can.drawString(400, 20, mitglied.ver_grund)
49     
50     
51     can.save()
52     
53     #move to the beginning of the StringIO buffer
54     packet.seek(0)
55     
56     # create a new PDF with Reportlab
57     new_pdf = PdfFileReader(packet)
58     # read your existing PDF
59     existing_pdf = PdfFileReader(open(hintergrund_pdf, "rb"))
60     output = PdfFileWriter()
61     # add the "watermark" (which is the new pdf) on the existing page
62     page = existing_pdf.pages[0]
63     page.mergePage(new_pdf.pages[0])
64     output.addPage(page)
65     # finally, write "output" to a real file
66     output_stream = open(ausgabe_pfad, "wb")
67     output.write(output_stream)
68     output_stream.close()
69
70 if __name__ == "__main__":
71     if len(sys.argv) == 6:
72         nachname = sys.argv[1]
73         vorname = sys.argv[2]
74         geburtsdatum = sys.argv[3]
75         infile = sys.argv[4]
76         outpath = sys.argv[5]
77     else:
78         print ("Nachname: ")
79         nachname = input()
80         print ("Vorname:")
81         vorname = input()
82         print ("Geburtsdatum:")
83         geburtsdatum = input()
84         print ("Input-Datei: ")
85         infile = input()
86         print ("Ausgabepfad:")
87         outpath = input()
88         
89     mitglied = Mitglied(nachname, vorname, geburtsdatum)
90     erzeuge_ausweis(mitglied,infile, outpath)
91