[docx] Generate cert for MECANICABADICA
This commit is contained in:
parent
c46fbd3c26
commit
1267bd11e3
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,6 +4,7 @@
|
||||
|
||||
.rollup.cache
|
||||
|
||||
.env
|
||||
.env.production
|
||||
|
||||
eegsac.zip
|
||||
|
@ -4,6 +4,7 @@ import {
|
||||
FrameAnchorType,
|
||||
TextRun,
|
||||
AlignmentType,
|
||||
BorderStyle,
|
||||
} from "docx";
|
||||
import * as QR from "qrcode";
|
||||
import { Matpel, cm, cmText, cmToEmu, createSimpleText, getImage, getMatpelHours, getMatpelLabel, getQR } from "./utils";
|
||||
@ -56,7 +57,7 @@ const tExpediteText = createSimpleText({
|
||||
|
||||
// MECANICA BASICA
|
||||
const tCourse = createSimpleText({
|
||||
xPosition: 1.43,
|
||||
xPosition: 1.7,
|
||||
yPosition: 7,
|
||||
width: 20.08,
|
||||
height: 1.5,
|
||||
@ -67,13 +68,24 @@ const tCourse = createSimpleText({
|
||||
|
||||
// En los temas de...
|
||||
const tTopics = createSimpleText({
|
||||
xPosition: 1.43,
|
||||
yPosition: 8.75,
|
||||
width: 20.08,
|
||||
xPosition: 1.7,
|
||||
yPosition: 8.9,
|
||||
width: 19.31,
|
||||
height: 1.5,
|
||||
text: "En los temas de: Lineamientos del Ministerio de Transportes y Comunicaciones (MTC), Operatividad efectiva del equipo. Procedimiento de operación correcta. Equipamiento y mantenimiento preventivo, Medidas de Control y Tipos de IPERC, Cuidados de la maquina durante la operación, Uso de pedales y controles, Funcionamiento del motor",
|
||||
text: "En los temas de: Lineamientos del Ministerio de Transportes y Comunicaciones (MTC), Operatividad efectiva del equipo. Procedimiento de operación correcta. Equipamiento y mantenimiento preventivo, Medidas de Control y Tipos de IPERC, Cuidados de la maquina durante la operación, Uso de pedales y controles, Funcionamiento del motor;",
|
||||
size: 22,
|
||||
alignment: AlignmentType.LEFT,
|
||||
alignment: AlignmentType.JUSTIFIED,
|
||||
});
|
||||
|
||||
// Con una duracion de...
|
||||
const tDuration = createSimpleText({
|
||||
xPosition: 1.7,
|
||||
yPosition: 11,
|
||||
width: 19.31,
|
||||
height: 1,
|
||||
text: "Con una duración de 12 horas lectivas.",
|
||||
size: 22,
|
||||
alignment: AlignmentType.JUSTIFIED,
|
||||
});
|
||||
|
||||
export async function mecanicaBasicaCert(props: CertData<null>): Promise<Buffer> {
|
||||
@ -85,6 +97,17 @@ export async function mecanicaBasicaCert(props: CertData<null>): Promise<Buffer>
|
||||
verticalOffset: 17.01,
|
||||
});
|
||||
|
||||
// N° XXXX-20XX-EEG
|
||||
const tCertCode = createSimpleText({
|
||||
xPosition: -1.86,
|
||||
yPosition: 1.8,
|
||||
width: 3.67,
|
||||
height: 0.8,
|
||||
text: `N° ${props.certCode}-${props.certYear}-EEG`,
|
||||
size: 20,
|
||||
alignment: AlignmentType.CENTER,
|
||||
});
|
||||
|
||||
// FERNANDO ARAOZ
|
||||
const tName = createSimpleText({
|
||||
xPosition: 0.38,
|
||||
@ -101,7 +124,7 @@ export async function mecanicaBasicaCert(props: CertData<null>): Promise<Buffer>
|
||||
const tContentPart1 = new Paragraph({
|
||||
frame: {
|
||||
position: {
|
||||
x: cmText(1.43),
|
||||
x: cmText(1.7),
|
||||
y: cmText(6.16),
|
||||
},
|
||||
width: cmText(20.08),
|
||||
@ -132,6 +155,81 @@ export async function mecanicaBasicaCert(props: CertData<null>): Promise<Buffer>
|
||||
alignment: AlignmentType.LEFT,
|
||||
});
|
||||
|
||||
// Se expide certificado...
|
||||
const tFinishLabel = createSimpleText({
|
||||
xPosition: 1.52,
|
||||
yPosition: 11.65,
|
||||
width: 20.1,
|
||||
height: 0.8,
|
||||
text: "Se expide el presente certificado para los fines que se estime conveniente",
|
||||
size: 22,
|
||||
alignment: AlignmentType.CENTER,
|
||||
italics: true,
|
||||
});
|
||||
|
||||
// Fecha de Emision: ...
|
||||
const certificateDate = new Paragraph({
|
||||
frame: {
|
||||
position: {
|
||||
x: cmText(17.25),
|
||||
y: cmText(17),
|
||||
},
|
||||
width: cmText(7.5),
|
||||
height: cmText(0.9),
|
||||
anchor: {
|
||||
horizontal: FrameAnchorType.MARGIN,
|
||||
vertical: FrameAnchorType.MARGIN,
|
||||
},
|
||||
},
|
||||
children: [
|
||||
new TextRun({
|
||||
text: `Fecha de Emisión:\t\t${props.certDay} / ${props.certMonth} / ${props.certYear}`,
|
||||
font: "Arial",
|
||||
size: 18,
|
||||
}),
|
||||
new TextRun({
|
||||
text: `Fecha de Expiración:\t\t${props.certDay} / ${props.certMonth} / ${parseInt(props.certYear, 10) + 1}`,
|
||||
font: "Arial",
|
||||
size: 18,
|
||||
break: 1,
|
||||
}),
|
||||
],
|
||||
alignment: AlignmentType.LEFT,
|
||||
});
|
||||
|
||||
// Recuadro de foto
|
||||
const photoSection = new Paragraph({
|
||||
frame: {
|
||||
position: {
|
||||
x: cmText(-1.5),
|
||||
y: cmText(-1.9),
|
||||
},
|
||||
width: cmText(2.81),
|
||||
height: cmText(3.57),
|
||||
anchor: {
|
||||
horizontal: FrameAnchorType.MARGIN,
|
||||
vertical: FrameAnchorType.MARGIN,
|
||||
},
|
||||
},
|
||||
children: [],
|
||||
border: {
|
||||
top: {
|
||||
style: BorderStyle.DASHED,
|
||||
},
|
||||
bottom: {
|
||||
style: BorderStyle.DASHED,
|
||||
},
|
||||
left: {
|
||||
style: BorderStyle.DASHED,
|
||||
},
|
||||
right: {
|
||||
style: BorderStyle.DASHED,
|
||||
},
|
||||
},
|
||||
alignment: AlignmentType.LEFT,
|
||||
});
|
||||
|
||||
|
||||
const doc = new Document({
|
||||
sections: [
|
||||
{
|
||||
@ -143,12 +241,17 @@ export async function mecanicaBasicaCert(props: CertData<null>): Promise<Buffer>
|
||||
},
|
||||
},
|
||||
children: [
|
||||
tCertCode,
|
||||
photoSection,
|
||||
tCertificate,
|
||||
tExpediteText,
|
||||
tName,
|
||||
tContentPart1,
|
||||
tCourse,
|
||||
tTopics,
|
||||
tFinishLabel,
|
||||
tDuration,
|
||||
certificateDate,
|
||||
new Paragraph({
|
||||
children: [
|
||||
imgFondoDoc,
|
||||
|
@ -94,6 +94,7 @@ export function createSimpleText(data: {
|
||||
size: number,
|
||||
underline?: Record<string, never>,
|
||||
alignment?: AlignmentType,
|
||||
italics?: boolean,
|
||||
}): Paragraph {
|
||||
|
||||
return new Paragraph({
|
||||
@ -116,6 +117,7 @@ export function createSimpleText(data: {
|
||||
font: data.font ?? "Arial",
|
||||
size: data.size,
|
||||
underline: data.underline,
|
||||
italics: data.italics,
|
||||
}),
|
||||
],
|
||||
alignment: data.alignment ?? AlignmentType.CENTER,
|
||||
|
Loading…
Reference in New Issue
Block a user