-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path__init__.py
166 lines (136 loc) · 5.03 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# -*- coding: utf-8 -*-
import os
import uuid
import time
import platform
if platform.system() == "Darwin":
os.system("clear")
elif platform.system() == "Windows":
os.system("cls")
def laTex_templating(filename, extension, folder, data):
"""
latex_templating : Str * Str * Dict[Str:Str] -> None
latex_templating(data) Templating engine for LaTex documents. Return None.
"""
with open(folder + filename + extension, "r") as file:
textcontent = file.read()
for key, value in data.items():
try:
textcontent = textcontent.replace("\{{"+ key + "}\}", value)
except:
continue
rfc4122 = uuid.uuid4().hex
with open(rfc4122 + extension, "w") as output:
output.write(textcontent)
return rfc4122
def pdfLaTex(rfc4122, extension):
"""
pdfLaTex : Str * Str -> None
pdfLaTex(rfc4122, extension) Runs commmand in console and compile LaTeX source code. Return None.
"""
instruction = "xelatex " + rfc4122 + extension + " >/dev/null 2>&1" # LaTex Compilation using XeLaTeX.
if platform.system() == "Darwin":
try:
os.system(instruction)
except:
try:
os.system("brew help")
except:
os.system("/bin/bash -c '$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)'")
os.system("brew install basictex >/dev/null 2>&1")
os.system(instruction)
elif platform.system() == "Linux":
try:
os.system(instruction)
except:
os.system("sudo apt install texlive")
os.system(instruction)
return None
def clean_setup(filename, rfc4122):
"""
clean_setup : Str * Str -> None
clean_setup(filename, rfc4122) Removes log and aux files created by the compilation process and rename the pdf file. Return None.
"""
os.remove(rfc4122 + ".aux")
os.remove(rfc4122 + ".log")
os.rename(rfc4122 + ".pdf", filename + ".pdf")
os.rename(rfc4122 + ".tex", filename + ".tex")
os.remove(filename + ".tex")
return None
def display_pdf(filepath):
"""
display_pdf : Str -> None
display_pdf(filepath) Shows pdf files that was created. Return None.
"""
if platform.system() == "Darwin":
while os.path.isfile(filepath + ".pdf") == False:
time.sleep(0.1)
if os.path.isfile(filepath + ".pdf"):
os.system("open " + filepath + ".pdf")
else:
raise ValueError("%s isn't a file!" % filepath + ".pdf")
return None
def main():
"""
Fonction Principale.
"""
objects = {
"Attestation sur l'honneur de filiation et de non condamnation" : {
"folder" : "Templates/",
"template" : "Attestation sur l'honneur de filiation et de non condamnation - Template",
"extension" : ".tex"
},
"Attestation de domiciliation et d'autorisation de siège social" : {
"folder" : "Templates/",
"template" : "Attestation de domiciliation et d'autorisation de siège social - Template",
"extension" : ".tex"
},
"Délégation de pouvoir en vue de l'accomplissement des actes de constitution" : {
"folder" : "Templates/",
"template" : "Délégation de pouvoir en vue de l'accomplissement des actes de constitution - Template",
"extension" : ".tex"
},
"Avis de constitution de société" : {
"folder" : "Templates/",
"template" : "Avis de constitution de société - Template",
"extension" : ".tex"
},
}
data = {
"prénom": "XXXX",
"nom": "XXXX",
"date de naissance": "6 septembre 2000",
"ville de naissance": "XXXX",
"numéro de voie": "XXXX",
"libellé de la voie": "XXXX",
"code postal": "XXXX",
"ville": "XXXX",
"prénom du père": "XXXX",
"nom du père": "XXXX",
"prénom de la mère": "XXXX",
"nom de la mère": "XXXX",
"raison sociale": "XXXX",
"forme juridique": "S.C.I.",
"capital": "XXXX",
"objet social": "XXXX",
"durée d'exercice": "XXXX",
"qualité des apports": "XXXX",
"modalités d'agrément": "XXXX",
"localisation du RCS": "XXXX",
"civilité du mandataire": "XXXX",
"prénom du mandataire": "XXXX",
"nom du mandataire": "XXXX",
"société du mandataire": "XXXX",
"date de naissance du mandataire": "XXXX",
"ville de naissance du mandataire": "XXXX",
"numéro de voie du mandataire": "XXXX",
"libellé de la voie du mandataire": "XXXX",
"code postal du mandataire": "XXXX",
"ville du mandataire": "XXXX"
}
for key, value in objects.items():
rfc4122 = laTex_templating(value["template"], value["extension"], value["folder"], data)
pdfLaTex(rfc4122, value["extension"])
display_pdf(rfc4122)
clean_setup(key, rfc4122)
main()