1
0
Fork 0

LaTeX- von Python code getrennt und aufgeräumt

This commit is contained in:
Konrad Schöbel 2013-05-29 23:30:08 +02:00
parent 7182eff0c1
commit 468f339449

View file

@ -5,112 +5,11 @@ import string
import sys import sys
import os import os
def tsubst(template, **keys):
"""
Helper function for template substitution.
@type template: string.Template
@param keys: substitution parameters
"""
return string.Template(template.safe_substitute(keys))
template_document = r"""\documentclass[10pt]{hackspace-brief}
\RequirePackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{relsize}
\RequirePackage[T1]{fontenc}
\RequirePackage{ngerman}
\RequirePackage{pdfpages}
\RequirePackage{eurosym}
\RequirePackage{textcomp}
\RequirePackage{booktabs}
\RequirePackage{fixltx2e}
\RequirePackage{mparhack}
\renewcommand{\familydefault}{\sfdefault}
\RequirePackage{ae}
\RequirePackage{microtype}
\fenstermarken
\trennlinien
\unserzeichen
% Eigene Daten
\NameZeileZ {Antwortadresse:}
\NameZeileA {???}
\NameZeileB {???}
\NameZeileC {???}
\NameZeileD {???}
\NameZeileE {???}
\Unterschrift {}
% Adresse, Betreff, Anrede, ...
\Adresse {${vorname} ${nachname}\\
${anschrift1}\\
${anschrift2}\\
[2ex]${anschrift3}\\
${anschrift4}}
\Betreff {Zuwendungsbestätigung Hackspace Jena e.\,V.}
\Anlagen {}
\IhrSchreiben {}
\IhrZeichen {}
\MeinZeichen {}
\Datum {Jena, den ${datum}}
\Anrede {Liebe/Lieber ${vorname},}
\Gruss {}{0.5cm}
\begin{document}
\begin{hackspace-brief}
für Deine Unterstützung der gemeinnützigen Arbeit des Hackspace CdE möchten wir uns herzlich bedanken.\\
Viele Grüße\\\\\\\\\\
??? \\ Vorstand Hackspace Jena e.\,V.
\newpage
\textbf{Aussteller: }Hackspace Jena e.\,V.\\
\phantom{\textbf{Aussteller:} } ADRESSE ??? ADRESSE
\bfseries Bestätigung über Geldzuwendungen/Mitgliedsbeitrag\\
\mdseries im Sinne des \S \ 10b des Einkommensteuergesetzes an eine der in \S \ 5 Abs. 1, Nr. 9 des Körperschaftssteuergesetzes bezeichneten Körperschaften, Personenvereinigungen oder Vermögensmassen\\
\textbf{Name und Anschrift des Zuwendenden: }${vorname} ${nachname}\\
\phantom{\textbf{Name und Anschrift des Zuwendenden: }}${anschrift1}\\
\phantom{\textbf{Name und Anschrift des Zuwendenden: }}${anschrift2}\\
\phantom{\textbf{Name und Anschrift des Zuwendenden: }}${anschrift3}\\
\phantom{\textbf{Name und Anschrift des Zuwendenden: }}${anschrift4}\\
\bfseries Betrag der Zuwendung in Ziffern: \mdseries ${betrag}~Euro\\\\
\bfseries Betrag der Zuwendung in Buchstaben: \mdseries ${wortbetrag}~Euro\\\\
\bfseries Tag der Zuwendung: \mdseries ${zuwendungsdatum}\\\\
Es handelt sich um den Verzicht auf Erstattung von Aufwendungen: Ja [\phantom{X}]
\quad Nein [X]\\\\
Wir sind wegen Förderung der ??? nach dem letzten uns zugegangenen Freistellungsbescheid des
Finanzamts ???, Steuernummer ???, vom ??? nach \S \ 5
Abs. 1 Nr. 9 des Körperschaftssteuergesetzes von der Körperschaftssteuer und
nach \S \ 3 Nr. 6 des Gewerbesteuergesetzes von der Gewerbesteuer befreit.
Es wird bestätigt, dass die Zuwendung nur zur ??? verwendet wird.
Jena, den ${datum}\\\\\\\\\\
???, Vorstand\\
\\
\vbox{}\vfill\vbox{}
\bfseries Hinweis:\\
\mdseries Wer vorsätzlich oder grob fahrlässig eine unrichtige Zuwendungsbestätigung erstellt oder wer
veranlasst, dass Zuwendungen nicht zu den in der Zuwendungsbestätigung angegebenen steuerbegünstigten
Zwecken verwendet werden, haftet für die Steuer, die dem Fiskus durch einen etwaigen Abzug der
Zuwendungen beim Zuwendenden entgeht (\S \ 10 b Abs. 4 EStG, \S \ 9 Abs. 3 KStG, \S \ 9 Nr. 5 GewStG).\\
Diese Bestätigung wird nicht als Nachweis für die steuerliche Berücksichtigung der Zuwendung anerkannt, wenn
das Datum des Freistellungsbescheides länger als 5 Jahre bzw. das Datum der vorläufigen Bescheinigung
länger als 3 Jahre seit Ausstellung der Bestätigung zurückliegt (BMF vom 15.12.1994~-- BStBl I S. 884).
\end{hackspace-brief}%
\end{document}
"""
if __name__ == "__main__": if __name__ == "__main__":
if len(sys.argv) == 1 or sys.argv[1] in ["-h", "--help"]: if len(sys.argv) == 1 or sys.argv[1] in ["-h", "--help"]:
print("Usage: bescheinigung.py input.csv") print("Usage: %s input.csv" % sys.argv[0])
exit(0) exit(0)
template_document = open('template.tex').read()
with open(sys.argv[1]) as inf: with open(sys.argv[1]) as inf:
i = 0 i = 0
for line in inf: for line in inf:
@ -126,7 +25,7 @@ if __name__ == "__main__":
'wortbetrag' : rawdata[7], 'wortbetrag' : rawdata[7],
'zuwendungsdatum' : rawdata[8], 'zuwendungsdatum' : rawdata[8],
'datum' : rawdata[9] } 'datum' : rawdata[9] }
doc = tsubst(doc, **data) doc = string.Template(doc.safe_substitute(data))
doc = doc.safe_substitute() doc = doc.safe_substitute()
with open('./bescheinigung{0}.tex'.format(i), 'w') as outf: with open('./bescheinigung{0}.tex'.format(i), 'w') as outf:
outf.write(doc) outf.write(doc)