Commit b59686f2 by Luciano Barletta

second pdf image. fixed some data. manual form added.

1 parent 7b6bdfbf
...@@ -7,49 +7,92 @@ app = Flask(__name__) ...@@ -7,49 +7,92 @@ app = Flask(__name__)
data = { data = {
"header" : { "header" : {
"patente" : "ABC123", "patente" : "?",
"fecha" : "15-01-2019", "fecha" : "?",
"hora" : "11:10" "hora" : "?"
}, },
"alineador" : { "alineador" : {
"eje_delantero" : "0.000" "eje_delantero" : "?"
}, },
"suspension" : [ "suspension" : [
{ {
"rendimiento_izquierdo" : "0.000", "rendimiento_izquierdo" : "?",
"peso_estatico" : "0.000", "peso_estatico" : "?",
"peso_dinamico" : "0.000", "peso_dinamico" : "?",
"rendimiento_derecho" : "0.000" "rendimiento_derecho" : "?"
},
{
"rendimiento_izquierdo" : "?",
"peso_estatico" : "?",
"peso_dinamico" : "?",
"rendimiento_derecho" : "?"
} }
], ],
"frenos" : [ "frenos" : [
{ {
"fuerza_izquierda" : "0.000", "fuerza_izquierda" : "?",
"resistencia_izquierda" : "0.000", "resistencia_izquierda" : "?",
"ovalidad_izquierda" : "0.000", "ovalidad_izquierda" : "?",
"peso_estatico" : "0.000", "peso_estatico" : "?",
"peso_dinamico" : "0.000", "peso_dinamico" : "?",
"fuerza_derecha" : "0.000", "fuerza_derecha" : "?",
"resistencia_derecha" : "0.000", "resistencia_derecha" : "?",
"ovalidad_derecha" : "0.000" "ovalidad_derecha" : "?"
},
{
"fuerza_izquierda" : "?",
"resistencia_izquierda" : "?",
"ovalidad_izquierda" : "?",
"peso_estatico" : "?",
"peso_dinamico" : "?",
"fuerza_derecha" : "?",
"resistencia_derecha" : "?",
"ovalidad_derecha" : "?"
},
{
"fuerza_izquierda" : "?",
"resistencia_izquierda" : "?",
"ovalidad_izquierda" : "?",
"peso_estatico" : "?",
"peso_dinamico" : "?",
"fuerza_derecha" : "?",
"resistencia_derecha" : "?",
"ovalidad_derecha" : "?"
},
{
"fuerza_izquierda" : "?",
"resistencia_izquierda" : "?",
"ovalidad_izquierda" : "?",
"peso_estatico" : "?",
"peso_dinamico" : "?",
"fuerza_derecha" : "?",
"resistencia_derecha" : "?",
"ovalidad_derecha" : "?"
} }
], ],
"trasero" : { "trasero" : {
"fuerza_izquierda" : "0.000", "fuerza_izquierda" : "?",
"fuerza_derecha" : "0.000", "fuerza_derecha" : "?",
"peso_estatico" : "0.000", "peso_estatico" : "?",
"peso_dinamico" : "0.000" "peso_dinamico" : "?"
}, },
"gaseshumos" : { "gaseshumos" : {
"co" : "0.000", "co" : "?",
"hc" : "0.000", "hc" : "?",
"opacidad_logaritmica" : "0.000" "opacidad_logaritmica" : "?"
} }
} }
@app.route('/manual')
def pdf():
return render_template(
"resultados.html",
data = data
)
@app.route('/') @app.route('/')
def main(): def main():
plate = "GXN560" plate = "JPY149"
s = SI(SI.Chrome) s = SI(SI.Chrome)
form = [ form = [
...@@ -82,15 +125,17 @@ def main(): ...@@ -82,15 +125,17 @@ def main():
answer = gototec(s, answer) answer = gototec(s, answer)
except: except:
return f"Error yendo a las especificaciones técnicas del dominio '{plate}'." return f"Error yendo a las especificaciones técnicas del dominio '{plate}'."
#try: try:
answer = readdata(s, answer) answer = readdata(s, answer)
#except: except:
# return f"Error leyendo datos de la patente '{plate}'." return f"Error leyendo datos de la patente '{plate}'."
#try: try:
answer = extradata(form, answer) answer = extradata(form, answer)
#except: except:
# return f"Error completando datos extra de la patente '{plate}'." return f"Error completando datos extra de la patente '{plate}'."
print(answer)
del s
return render_template( return render_template(
"resultados.html", "resultados.html",
data = answer data = answer
...@@ -141,13 +186,12 @@ def readdata(s, r): ...@@ -141,13 +186,12 @@ def readdata(s, r):
reach = lambda id: lambda s: s.readInput( s.find(s.By.ID, id) ) reach = lambda id: lambda s: s.readInput( s.find(s.By.ID, id) )
# alineacion # alineacion
r['alineador']['eje_delantero'] = attempt_do(reach("deriva"), default = "?")(s) r['alineador']['eje_delantero'] = empty_for_question(attempt_do(reach("deriva"), default = "?")(s))
# suspension # suspension
for i in range(2): for i in range(2):
sus = {} sus = {}
sus['fuerza_izquierda'] = attempt_do(reach(f"fuerzaIzq-{i}"), default = "?")(s) sus['peso_estatico'] = empty_for_question(attempt_do(reach(f"pesoBascula-{i}"), default = "?")(s))
sus['fuerza_derecha'] = attempt_do(reach(f"fuerzaDer-{i}"), default = "?")(s)
r['suspension'].append(sus) r['suspension'].append(sus)
...@@ -155,25 +199,25 @@ def readdata(s, r): ...@@ -155,25 +199,25 @@ def readdata(s, r):
frenos = s.find(SI.By.XPATH, "//table[@class='tabla_ensayo']/tbody//tr[@class='odd' or @class='even']","1-4") frenos = s.find(SI.By.XPATH, "//table[@class='tabla_ensayo']/tbody//tr[@class='odd' or @class='even']","1-4")
for i in range(len(frenos)): for i in range(len(frenos)):
fre = {} fre = {}
fre['peso_estatico'] = attempt_do(reach(f"pesoBascula-{i}"), default = "?")(s) fre['peso_estatico'] = empty_for_question(attempt_do(reach(f"pesoBascula-{i}"), default = "?")(s))
fre['peso_dinamico'] = attempt_do(reach(f"pesoMaximo-{i}"), default = "?")(s) fre['peso_dinamico'] = empty_for_question(attempt_do(reach(f"pesoMaximo-{i}"), default = "?")(s))
fre['fuerza_izquierda'] = attempt_do(reach(f"fuerzaIzq-{i}"), default = "?")(s) fre['fuerza_izquierda'] = empty_for_question(attempt_do(reach(f"fuerzaIzq-{i}"), default = "?")(s))
fre['fuerza_derecha'] = attempt_do(reach(f"fuerzaDer-{i}"), default = "?")(s) fre['fuerza_derecha'] = empty_for_question(attempt_do(reach(f"fuerzaDer-{i}"), default = "?")(s))
r['frenos'].append(fre) r['frenos'].append(fre)
# freno trasero # freno trasero
r['trasero']['peso_estatico'] = attempt_do(reach(f"pesoBasculaEst-0"), default = "?")(s) r['trasero']['peso_estatico'] = empty_for_question(attempt_do(reach(f"pesoBasculaEst-0"), default = "?")(s))
r['trasero']['peso_dinamico'] = attempt_do(reach(f"pesoMaximoEst-0"), default = "?")(s) r['trasero']['peso_dinamico'] = empty_for_question(attempt_do(reach(f"pesoMaximoEst-0"), default = "?")(s))
r['trasero']['fuerza_izquierda'] = attempt_do(reach(f"fuerzaIzqEst-0"), default = "?")(s) r['trasero']['fuerza_izquierda'] = empty_for_question(attempt_do(reach(f"fuerzaIzqEst-0"), default = "?")(s))
r['trasero']['fuerza_derecha'] = attempt_do(reach(f"fuerzaDerEst-0"), default = "?")(s) r['trasero']['fuerza_derecha'] = empty_for_question(attempt_do(reach(f"fuerzaDerEst-0"), default = "?")(s))
# gases y humos # gases y humos
r['gaseshumos']['opacidad_logaritmica'] = attempt_do(reach(f"opacidadLogaritmica"), default = "?")(s) r['gaseshumos']['opacidad_logaritmica'] = empty_for_question(attempt_do(reach(f"opacidadLogaritmica"), default = "?")(s))
r['gaseshumos']['co'] = attempt_do(reach(f"co"), default = "?")(s) r['gaseshumos']['co'] = empty_for_question(attempt_do(reach(f"co"), default = "?")(s))
r['gaseshumos']['hc'] = attempt_do(reach(f"hc"), default = "?")(s) r['gaseshumos']['hc'] = empty_for_question(attempt_do(reach(f"hc"), default = "?")(s))
return r return r
...@@ -205,6 +249,9 @@ def attempt_do(f, default = "", error = ""): ...@@ -205,6 +249,9 @@ def attempt_do(f, default = "", error = ""):
return default return default
return inner return inner
def empty_for_question(string):
return "?" if string == "" else string
# Inicio del servicio # Inicio del servicio
if __name__ == "__main__": if __name__ == "__main__":
app.run("0.0.0.0") app.run("0.0.0.0")
\ No newline at end of file \ No newline at end of file
...@@ -10,8 +10,8 @@ class SeleniumInterface: ...@@ -10,8 +10,8 @@ class SeleniumInterface:
Chrome = "Chrome" Chrome = "Chrome"
By = By() By = By()
Keys = Keys() Keys = Keys()
Timeout = 1 Timeout = 0.5
PageChangeWait = 1 PageChangeWait = 0.5
def __init__(self, driverType): def __init__(self, driverType):
self.driver = self._getDriver(driverType) self.driver = self._getDriver(driverType)
......
...@@ -44,12 +44,12 @@ class Vector { ...@@ -44,12 +44,12 @@ class Vector {
class Line { class Line {
/** /**
* @param {Vector} beggining * @param {Vector} position
* @param {Vector} end * @param {Vector} size
*/ */
constructor(beggining, end) { constructor(position, size) {
this.beggining = beggining; this.position = position;
this.end = end; this.size = size;
} }
/** /**
...@@ -57,10 +57,10 @@ class Line { ...@@ -57,10 +57,10 @@ class Line {
*/ */
draw(pdf) { draw(pdf) {
pdf.line( pdf.line(
this.beggining.x, this.position.x,
this.beggining.y, this.position.y,
this.end.x, this.size.x,
this.end.y this.size.y
); );
} }
} }
...@@ -73,23 +73,69 @@ class Text { ...@@ -73,23 +73,69 @@ class Text {
* @param {Vector} position * @param {Vector} position
* @param {object} font * @param {object} font
*/ */
constructor(text, position, font) { constructor(text, position, font = null, align = null) {
this.text = text; this.text = text;
this.position = position; this.position = position;
this.font = font this.font = font
this.align = align
} }
/** /**
* @param {jsPDF} pdf * @param {jsPDF} pdf
*/ */
draw(pdf) { draw(pdf) {
/** replace ? with 0s (temporary) **/
if (this.text == "?") this.text = "0.000";
if (this.font){
pdf.setFont(this.font.font); pdf.setFont(this.font.font);
pdf.setFontType(this.font.type); pdf.setFontType(this.font.type);
pdf.setFontSize(this.font.size); pdf.setFontSize(this.font.size);
}
if (this.align) {
pdf.text(
this.text,
this.position.x,
this.position.y,
this.align
);
}
else {
pdf.text( pdf.text(
this.text, this.text,
this.position.x, this.position.x,
this.position.y this.position.y
)
}
}
}
class Image {
/**
* Both arguments should be real coordinates and not a percentage based on parent element
* @param {string} text
* @param {Vector} position
* @param {object} font
*/
constructor(pointer, position, size) {
this.pointer = pointer;
this.position = position;
this.size = size
}
/**
* @param {jsPDF} pdf
*/
draw(pdf) {
pdf.addImage(
this.pointer,
this.position.x,
this.position.y,
this.size.x,
this.size.y
); );
} }
} }
......
...@@ -52,7 +52,7 @@ class PDF1 { ...@@ -52,7 +52,7 @@ class PDF1 {
const header = this.A4.addRelativeChild(new Div(pointer, new Vector(Pos.end, 3))); const header = this.A4.addRelativeChild(new Div(pointer, new Vector(Pos.end, 3)));
header.addRelativeChildren([ header.addRelativeChildren([
new Text("Dominio: " + data['dominio'], new Vector(Pos.beg_margin, Pos.two_thirds), this.font), new Text("Dominio: " + data['patente'], new Vector(Pos.beg_margin, Pos.two_thirds), this.font),
new Text("Fecha: " + data['fecha'], new Vector(Pos.third, Pos.two_thirds), this.font) new Text("Fecha: " + data['fecha'], new Vector(Pos.third, Pos.two_thirds), this.font)
]); ]);
...@@ -69,7 +69,7 @@ class PDF1 { ...@@ -69,7 +69,7 @@ class PDF1 {
new Text("Eje Delantero", new Vector(Pos.beg_margin + 2, Pos.two_thirds), this.font), new Text("Eje Delantero", new Vector(Pos.beg_margin + 2, Pos.two_thirds), this.font),
new Text(data['eje_delan'], new Vector(Pos.quarter, Pos.two_thirds), this.font) new Text(data['eje_delantero'], new Vector(Pos.quarter, Pos.two_thirds), this.font)
]); ]);
return pointer.addxy(0, 5); return pointer.addxy(0, 5);
...@@ -107,7 +107,13 @@ class PDF1 { ...@@ -107,7 +107,13 @@ class PDF1 {
for (let i = 0; i < ejes.length; i++) { for (let i = 0; i < ejes.length; i++) {
const x = data[i]; const x = data[i];
table(ejes[i], i - 1, x["ren_izq"], x["peso"], x["ren_der"]) table(
ejes[i],
i + 1,
x["rendimiento_izquierdo"],
x["peso_estatico"],
x["rendimiento_derecho"]
);
} }
return pointer.addxy(0, 15); return pointer.addxy(0, 15);
...@@ -133,38 +139,49 @@ class PDF1 { ...@@ -133,38 +139,49 @@ class PDF1 {
new Text("Fuerza IZ", new Vector(Pos.beg_margin, Pos.quarter), this.font), new Text("Fuerza IZ", new Vector(Pos.beg_margin, Pos.quarter), this.font),
new Text(FI, new Vector(Pos.beg_margin + 3, Pos.quarter + 10), this.font), new Text(`${FI}`, new Vector(Pos.beg_margin + 3, Pos.quarter + 10), this.font),
new Text("Res.Rodadura IZ", new Vector(Pos.beg_margin, Pos.middle), this.font), new Text("Res.Rodadura IZ", new Vector(Pos.beg_margin, Pos.middle), this.font),
new Text(RI, new Vector(Pos.beg_margin + 3, Pos.middle + 10), this.font), new Text(`${RI}`, new Vector(Pos.beg_margin + 3, Pos.middle + 10), this.font),
new Text("Ovalidad IZ", new Vector(Pos.beg_margin, Pos.three_quarters), this.font), new Text("Ovalidad IZ", new Vector(Pos.beg_margin, Pos.three_quarters), this.font),
new Text(OI, new Vector(Pos.beg_margin + 3, Pos.three_quarters + 10), this.font), new Text(`${OI}`, new Vector(Pos.beg_margin + 3, Pos.three_quarters + 10), this.font),
new Text("Peso del Eje", new Vector(Pos.middle - 10, Pos.quarter), this.font), new Text("Peso del Eje", new Vector(Pos.middle - 10, Pos.quarter), this.font),
new Text(peso, new Vector(Pos.middle - 5, Pos.quarter + 10), this.font), new Text(`${peso}`, new Vector(Pos.middle - 5, Pos.quarter + 10), this.font),
new Text("Fuerza DE", new Vector(Pos.three_quarters, Pos.quarter), this.font), new Text("Fuerza DE", new Vector(Pos.three_quarters, Pos.quarter), this.font),
new Text(FD, new Vector(Pos.three_quarters + 3, Pos.quarter + 10), this.font), new Text(`${FD}`, new Vector(Pos.three_quarters + 3, Pos.quarter + 10), this.font),
new Text("Res.Rodadura DE", new Vector(Pos.three_quarters, Pos.middle), this.font), new Text("Res.Rodadura DE", new Vector(Pos.three_quarters, Pos.middle), this.font),
new Text(RD, new Vector(Pos.three_quarters + 3, Pos.middle + 10), this.font), new Text(`${RD}`, new Vector(Pos.three_quarters + 3, Pos.middle + 10), this.font),
new Text("Ovalidad DE", new Vector(Pos.three_quarters, Pos.three_quarters), this.font), new Text("Ovalidad DE", new Vector(Pos.three_quarters, Pos.three_quarters), this.font),
new Text(OD, new Vector(Pos.three_quarters + 3, Pos.three_quarters + 10), this.font) new Text(`${OD}`, new Vector(Pos.three_quarters + 3, Pos.three_quarters + 10), this.font)
]); ]);
}; };
for (let i = 0; i < ejes.length; i++) { for (let i = 0; i < ejes.length; i++) {
const x = data[i]; const x = data[i];
table(ejes[i], i - 1, x["f_izq"], x["res_izq"], x["ov_izq"], x["peso"], x["f_der"], x["res_der"], x["ov_der"]); if (x == undefined) continue;
table(
ejes[i],
i + 1,
x["fuerza_izquierda"],
x["resistencia_izquierda"],
x["ovalidad_izquierda"],
x["peso_estatico"],
x["fuerza_derecha"],
x["resistencia_derecha"],
x["ovalidad_derecha"]
);
} }
return pointer.addxy(0, 60); return pointer.addxy(0, 60);
...@@ -180,11 +197,11 @@ class PDF1 { ...@@ -180,11 +197,11 @@ class PDF1 {
new Text("Fuerza IZ", new Vector(Pos.beg_margin, Pos.two_thirds), this.font), new Text("Fuerza IZ", new Vector(Pos.beg_margin, Pos.two_thirds), this.font),
new Text(data['f_izq'], new Vector(Pos.beg_margin, Pos.end), this.font), new Text(data['fuerza_izquierda'], new Vector(Pos.beg_margin, Pos.end), this.font),
new Text("Fuerza DE", new Vector(Pos.three_quarters, Pos.two_thirds), this.font), new Text("Fuerza DE", new Vector(Pos.three_quarters, Pos.two_thirds), this.font),
new Text(data['f_der'], new Vector(Pos.three_quarters, Pos.end), this.font), new Text(data['fuerza_derecha'], new Vector(Pos.three_quarters, Pos.end), this.font),
]); ]);
...@@ -203,7 +220,7 @@ class PDF1 { ...@@ -203,7 +220,7 @@ class PDF1 {
new Text(`CO ${data['co']} % HC ${data['hc']} ppm`, new Vector(Pos.beg, Pos.two_thirds), this.font), new Text(`CO ${data['co']} % HC ${data['hc']} ppm`, new Vector(Pos.beg, Pos.two_thirds), this.font),
new Text(`Medición ${data['med']}`, new Vector(Pos.three_quarters, Pos.two_thirds), this.font) new Text(`Medición ${data['opacidad_logaritmica']}`, new Vector(Pos.three_quarters, Pos.two_thirds), this.font)
]); ]);
......
class PDF1 { class PDF2 {
"use strict"; "use strict";
constructor() { constructor() {
/** Coordinate container that occupies the whole page **/ /** Coordinate container that occupies the whole page **/
this.A4 = new Div( this.A4 = new Div(
...@@ -12,7 +11,7 @@ class PDF1 { ...@@ -12,7 +11,7 @@ class PDF1 {
this.containerSize = 86; this.containerSize = 86;
this.font = { this.font = {
"font": "courier", "font": "times",
"type": "normal", "type": "normal",
"size": 10 "size": 10
}; };
...@@ -27,7 +26,7 @@ class PDF1 { ...@@ -27,7 +26,7 @@ class PDF1 {
*/ */
const pdfthis = this; const pdfthis = this;
const functionMapping = [ const functionMapping = [
(pointer, data) => pdfthis.maha(pointer, data['header']), (pointer, data) => pdfthis.mahaToPDF(pointer, data['header']),
(pointer, data) => pdfthis.headerToPDF(pointer, data['header']), (pointer, data) => pdfthis.headerToPDF(pointer, data['header']),
(pointer, data) => pdfthis.alineadorToPDF(pointer, data['alineador']), (pointer, data) => pdfthis.alineadorToPDF(pointer, data['alineador']),
(pointer, data) => pdfthis.suspensionToPDF(pointer, data['suspension']), (pointer, data) => pdfthis.suspensionToPDF(pointer, data['suspension']),
...@@ -48,166 +47,55 @@ class PDF1 { ...@@ -48,166 +47,55 @@ class PDF1 {
return this.A4; return this.A4;
} }
headerToPDF(pointer, data) { mahaToPDF(pointer, data) {
const header = this.A4.addRelativeChild(new Div(pointer, new Vector(Pos.end, 3))); const maha = this.A4.addRelativeChild(new Div(pointer, new Vector(Pos.end, 6)));
header.addRelativeChildren([ maha.addRelativeChildren([
new Text("Dominio: " + data['dominio'], new Vector(Pos.beg_margin, Pos.two_thirds), this.font),
new Text("Fecha: " + data['fecha'], new Vector(Pos.third, Pos.two_thirds), this.font) new Line(
]); new Vector(Pos.beg_margin, Pos.end),
new Vector(Pos.end_margin, Pos.end)
),
return pointer.addxy(0, 3); new Text(
} ["MAHA","EUROSYSTEM","Bitte hier Ihre","Anschrift eintragen"],
new Vector(Pos.middle, Pos.quarter),
this.font,
"center"
),
alineadorToPDF(pointer, data) { new Text(
["EUROSYSTEM","V 3.18.009",data['fecha']],
new Vector(Pos.three_quarters, Pos.middle),
this.font,
"right"
),
const alineador = this.A4.addRelativeChild(new Div(pointer, new Vector(Pos.end, 5))); new Image(
document.getElementById("maha"),
alineador.addRelativeChildren([ new Vector(Pos.end - 10, Pos.beg_margin),
new Text("Resultado Pruebas en Banco de Alineador al Paso", new Vector(Pos.beg_margin + 2, Pos.third), this.font), new Vector(10, Pos.end_margin)
)
new Text("Eje Delantero", new Vector(Pos.beg_margin + 2, Pos.two_thirds), this.font),
new Text(data['eje_delan'], new Vector(Pos.quarter, Pos.two_thirds), this.font)
]); ]);
return pointer.addxy(0, 5);
} }
suspensionToPDF(pointer, data) { headerToPDF(pointer, data) {
const suspension = this.A4.addRelativeChild(new Div(pointer, new Vector(Pos.end, 15)));
const divsize = new Vector(this.containerSize, Pos.middle);
const ejes = suspension.addRelativeChildren([
new Div(new Vector(Pos.beg_margin + 2, Pos.beg), divsize),
new Div(new Vector(Pos.beg_margin + 2, Pos.middle), divsize)
]);
const table = (container, eje, RI, peso, RD) => {
container.addRelativeChildren([
new Text(`Resultado Pruebas en Banco de Suspensión - Eje ${eje}`, new Vector(0, Pos.third, ), this.font),
new Text("Rendimiento Izquierdo", new Vector(Pos.beg, Pos.two_thirds), this.font),
new Text(RI, new Vector(Pos.beg + 10, Pos.end, ), this.font),
new Text("Peso Total del Eje", new Vector(Pos.middle - 10, Pos.two_thirds), this.font),
new Text(peso, new Vector(Pos.middle - 3, Pos.end), this.font),
new Text("Rendimiento Derecho", new Vector(Pos.three_quarters - 5, Pos.two_thirds), this.font),
new Text(RD, new Vector(Pos.three_quarters + 5, Pos.end), this.font)
]);
};
for (let i = 0; i < ejes.length; i++) {
const x = data[i];
table(ejes[i], i - 1, x["ren_izq"], x["peso"], x["ren_der"])
} }
return pointer.addxy(0, 15); alineadorToPDF(pointer, data) {
} }
frenosToPDF(pointer, data) { suspensionToPDF(pointer, data) {
const frenos = this.A4.addRelativeChild(new Div(pointer, new Vector(Pos.end, 60)));
const divsize = new Vector(this.containerSize, Pos.quarter);
const ejes = frenos.addRelativeChildren([
new Div(new Vector(Pos.beg_margin + 2, Pos.beg), divsize),
new Div(new Vector(Pos.beg_margin + 2, Pos.quarter), divsize),
new Div(new Vector(Pos.beg_margin + 2, Pos.middle), divsize),
new Div(new Vector(Pos.beg_margin + 2, Pos.three_quarters), divsize)
]);
const table = (container, eje, FI, RI, OI, peso, FD, RD, OD) => {
container.addRelativeChildren([
new Text(`Diagnóstico de Frenos - Eje ${eje}`, new Vector(Pos.beg, Pos.beg_margin + 10), this.font),
new Text("Fuerza IZ", new Vector(Pos.beg_margin, Pos.quarter), this.font),
new Text(FI, new Vector(Pos.beg_margin + 3, Pos.quarter + 10), this.font),
new Text("Res.Rodadura IZ", new Vector(Pos.beg_margin, Pos.middle), this.font),
new Text(RI, new Vector(Pos.beg_margin + 3, Pos.middle + 10), this.font),
new Text("Ovalidad IZ", new Vector(Pos.beg_margin, Pos.three_quarters), this.font),
new Text(OI, new Vector(Pos.beg_margin + 3, Pos.three_quarters + 10), this.font),
new Text("Peso del Eje", new Vector(Pos.middle - 10, Pos.quarter), this.font),
new Text(peso, new Vector(Pos.middle - 5, Pos.quarter + 10), this.font),
new Text("Fuerza DE", new Vector(Pos.three_quarters, Pos.quarter), this.font),
new Text(FD, new Vector(Pos.three_quarters + 3, Pos.quarter + 10), this.font),
new Text("Res.Rodadura DE", new Vector(Pos.three_quarters, Pos.middle), this.font),
new Text(RD, new Vector(Pos.three_quarters + 3, Pos.middle + 10), this.font),
new Text("Ovalidad DE", new Vector(Pos.three_quarters, Pos.three_quarters), this.font),
new Text(OD, new Vector(Pos.three_quarters + 3, Pos.three_quarters + 10), this.font)
]);
};
for (let i = 0; i < ejes.length; i++) {
const x = data[i];
table(ejes[i], i - 1, x["f_izq"], x["res_izq"], x["ov_izq"], x["peso"], x["f_der"], x["res_der"], x["ov_der"]);
} }
return pointer.addxy(0, 60); frenosToPDF(pointer, data) {
} }
traseroToPDF(pointer, data) { traseroToPDF(pointer, data) {
const trasero = this.A4.addRelativeChild(new Div(pointer.addxy(Pos.beg_margin + 2, 0), new Vector(this.containerSize, 9)));
trasero.addRelativeChildren([
new Text("Diagnóstico de Frenos - Eje Trasero - Frenos de Mano", new Vector(Pos.beg, Pos.third, ), this.font),
new Text("Fuerza IZ", new Vector(Pos.beg_margin, Pos.two_thirds), this.font),
new Text(data['f_izq'], new Vector(Pos.beg_margin, Pos.end), this.font),
new Text("Fuerza DE", new Vector(Pos.three_quarters, Pos.two_thirds), this.font),
new Text(data['f_der'], new Vector(Pos.three_quarters, Pos.end), this.font),
]);
return pointer.addxy(0, 9);
} }
gaseshumosToPDF(pointer, data) { gaseshumosToPDF(pointer, data) {
const gaseshumos = this.A4.addRelativeChild(new Div(pointer.addxy(Pos.beg_margin + 2, 0), new Vector(this.containerSize, 9)));
gaseshumos.addRelativeChildren([
new Text("Resultado Analizador de Gases", new Vector(Pos.beg, Pos.third), this.font),
new Text("Resultado Analizador de Humos", new Vector(Pos.two_thirds, Pos.third), this.font),
new Text(`CO ${data['co']} % HC ${data['hc']} ppm`, new Vector(Pos.beg, Pos.two_thirds), this.font),
new Text(`Medición ${data['med']}`, new Vector(Pos.three_quarters, Pos.two_thirds), this.font)
]);
return pointer.addxy(0, 9);
} }
} }
\ No newline at end of file \ No newline at end of file
:root { :root {
--FontSize : 20; --FontSize : 25;
} }
html { html {
...@@ -30,6 +30,9 @@ table { ...@@ -30,6 +30,9 @@ table {
} }
.PDFButtonContainer { .PDFButtonContainer {
margin: auto;
margin-top: 3%;
margin-bottom: 3%;
width: 100%; width: 100%;
text-align: center; text-align: center;
} }
...@@ -51,8 +54,30 @@ table { ...@@ -51,8 +54,30 @@ table {
font-size: 16px; font-size: 16px;
} }
.TableContainer { input {
height: auto; position: absolute;
width: 100%; left: 30%;
display: table; font-size: 15;
border-top: none;
border-left: none;
border-right: none;
border-bottom: 1px solid gray;
font-weight: 700;
}
.DisabledButton {
background-color: gray;
color: black;
font-weight: normal;
}
.Message {
font-size: 20;
position: fixed;
right: 50;
top: 50;
padding: 1%;
border: 2px solid gray;
background-color: rgba(200, 150, 250, 0.5);
width: 30%;
} }
\ No newline at end of file \ No newline at end of file
...@@ -14,12 +14,79 @@ ...@@ -14,12 +14,79 @@
<title>Pruebas de Alineamiento</title> <title>Pruebas de Alineamiento</title>
</head> </head>
<body> <body>
<div class="Message">
Los datos con signo de pregunta '?' son datos no encontrados o faltantes.<br>
Pueden ser completados a mano antes de convertir a PDF.<br>
De no ser completados, se verán como lo que diga el campo 'Por defecto' al final de la página.
</div>
<h1>Datos Generales:</h1>
Patente <input type="text" name="patente" value="{{ data['header']['patente'] }}">
<br>
Fecha <input type="text" name="fecha" value="{{ data['header']['fecha'] }}">
<br>
<h1>Alineador:</h1>
Eje Delantero <input type="text" name="eje_delantero" value="{{ data['alineador']['eje_delantero'] }}">
<br>
<h1>Suspensión:</h1>
{% for eje in data['suspension'] %}
Rendimiento Izquerdo <input type="text" name="rendimiento_izquierdo" value="{{ eje['rendimiento_izquierdo'] }}">
<br>
Rendimiento Derecho <input type="text" name="rendimiento_derecho" value="{{ eje['rendimiento_derecho'] }}">
<br>
Peso Estático (Total) <input type="text" name="peso_estatico" value="{{ eje['peso_estatico'] }}">
<br>
<br>
{% endfor %}
<h1>Frenos:</h1>
{% for eje in data['frenos'] %}
Fuerza Izquierda <input type="text" name="fuerza_izquierda" value="{{ eje['fuerza_izquierda'] }}">
<br>
Fuerza Derecha <input type="text" name="fuerza_derecha" value="{{ eje['fuerza_derecha'] }}">
<br>
Resistencia Izquierda <input type="text" name="resistencia_izquierda" value="{{ eje['resistencia_izquierda'] }}">
<br>
Resistencia Derecha <input type="text" name="resistencia_derecha" value="{{ eje['resistencia_derecha'] }}">
<br>
Ovalidad Izquierda <input type="text" name="ovalidad_izquierda" value="{{ eje['ovalidad_izquierda'] }}">
<br>
Ovalidad Derecha <input type="text" name="ovalidad_derecha" value="{{ eje['ovalidad_derecha'] }}">
<br>
Peso Estático (Total) <input type="text" name="peso_estatico" value="{{ eje['peso_estatico'] }}">
<br>
<br>
{% endfor %}
<h1>Freno Trasero:</h1>
Fuerza Izquierda <input type="text" name="fuerza_izquierda" value="{{ data['trasero']['fuerza_izquierda'] }}">
<br>
Fuerza Derecha <input type="text" name="fuerza_derecha" value="{{ data['trasero']['fuerza_derecha'] }}">
<br>
<h1>Gases y Humos</h1>
Opacidad Logarítmica <input type="text" name="opacidad_logaritmica" value="{{ data['gaseshumos']['opacidad_logaritmica'] }}">
<br>
CO <input type="text" name="co" value="{{ data['gaseshumos']['co'] }}">
<br>
HC <input type="text" name="hc" value="{{ data['gaseshumos']['hc'] }}">
<br>
<br>
<br>
Por defecto: <input type="text" name="defecto" value="0.000">
<br>
<div class="PDFButtonContainer"> <div class="PDFButtonContainer">
<button class="PDFButton" onclick= <button class="PDFButton" onclick=
"window.open( "window.open(
compile( compile(
(new PDF1()).pdf( {{ data }} ), (new PDF1()).pdf( {{ data }} ),
new jsPDF('portrait', 'pt', 'a4'), new jsPDF('portrait', 'pt', 'a4')
) )
.output('bloburl') .output('bloburl')
)"; )";
...@@ -30,14 +97,15 @@ ...@@ -30,14 +97,15 @@
<button class="PDFButton" onclick= <button class="PDFButton" onclick=
"window.open( "window.open(
compile( compile(
(new PDF1()).pdf( {{ data }} ), (new PDF2()).pdf( {{ data }} ),
new jsPDF('portrait', 'pt', 'a4'), new jsPDF('portrait', 'pt', 'a4')
) )
.output('bloburl') .output('bloburl')
)"; )";
> >
Convertir a PDF - 2 Convertir a PDF - 2
</button> </button>
<img id="maha" src="{{ url_for('static', filename = 'assets/maha.png') }}" style="display: none;">
</div> </div>
</body> </body>
</html> </html>
\ No newline at end of file \ No newline at end of file
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!