[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
|
.rollup.cache
|
||||||
|
|
||||||
|
.env
|
||||||
.env.production
|
.env.production
|
||||||
|
|
||||||
eegsac.zip
|
eegsac.zip
|
||||||
|
@ -4,6 +4,7 @@ import {
|
|||||||
FrameAnchorType,
|
FrameAnchorType,
|
||||||
TextRun,
|
TextRun,
|
||||||
AlignmentType,
|
AlignmentType,
|
||||||
|
BorderStyle,
|
||||||
} from "docx";
|
} from "docx";
|
||||||
import * as QR from "qrcode";
|
import * as QR from "qrcode";
|
||||||
import { Matpel, cm, cmText, cmToEmu, createSimpleText, getImage, getMatpelHours, getMatpelLabel, getQR } from "./utils";
|
import { Matpel, cm, cmText, cmToEmu, createSimpleText, getImage, getMatpelHours, getMatpelLabel, getQR } from "./utils";
|
||||||
@ -56,7 +57,7 @@ const tExpediteText = createSimpleText({
|
|||||||
|
|
||||||
// MECANICA BASICA
|
// MECANICA BASICA
|
||||||
const tCourse = createSimpleText({
|
const tCourse = createSimpleText({
|
||||||
xPosition: 1.43,
|
xPosition: 1.7,
|
||||||
yPosition: 7,
|
yPosition: 7,
|
||||||
width: 20.08,
|
width: 20.08,
|
||||||
height: 1.5,
|
height: 1.5,
|
||||||
@ -67,13 +68,24 @@ const tCourse = createSimpleText({
|
|||||||
|
|
||||||
// En los temas de...
|
// En los temas de...
|
||||||
const tTopics = createSimpleText({
|
const tTopics = createSimpleText({
|
||||||
xPosition: 1.43,
|
xPosition: 1.7,
|
||||||
yPosition: 8.75,
|
yPosition: 8.9,
|
||||||
width: 20.08,
|
width: 19.31,
|
||||||
height: 1.5,
|
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,
|
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> {
|
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,
|
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
|
// FERNANDO ARAOZ
|
||||||
const tName = createSimpleText({
|
const tName = createSimpleText({
|
||||||
xPosition: 0.38,
|
xPosition: 0.38,
|
||||||
@ -101,7 +124,7 @@ export async function mecanicaBasicaCert(props: CertData<null>): Promise<Buffer>
|
|||||||
const tContentPart1 = new Paragraph({
|
const tContentPart1 = new Paragraph({
|
||||||
frame: {
|
frame: {
|
||||||
position: {
|
position: {
|
||||||
x: cmText(1.43),
|
x: cmText(1.7),
|
||||||
y: cmText(6.16),
|
y: cmText(6.16),
|
||||||
},
|
},
|
||||||
width: cmText(20.08),
|
width: cmText(20.08),
|
||||||
@ -132,6 +155,81 @@ export async function mecanicaBasicaCert(props: CertData<null>): Promise<Buffer>
|
|||||||
alignment: AlignmentType.LEFT,
|
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({
|
const doc = new Document({
|
||||||
sections: [
|
sections: [
|
||||||
{
|
{
|
||||||
@ -143,12 +241,17 @@ export async function mecanicaBasicaCert(props: CertData<null>): Promise<Buffer>
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
|
tCertCode,
|
||||||
|
photoSection,
|
||||||
tCertificate,
|
tCertificate,
|
||||||
tExpediteText,
|
tExpediteText,
|
||||||
tName,
|
tName,
|
||||||
tContentPart1,
|
tContentPart1,
|
||||||
tCourse,
|
tCourse,
|
||||||
tTopics,
|
tTopics,
|
||||||
|
tFinishLabel,
|
||||||
|
tDuration,
|
||||||
|
certificateDate,
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
children: [
|
children: [
|
||||||
imgFondoDoc,
|
imgFondoDoc,
|
||||||
|
@ -94,6 +94,7 @@ export function createSimpleText(data: {
|
|||||||
size: number,
|
size: number,
|
||||||
underline?: Record<string, never>,
|
underline?: Record<string, never>,
|
||||||
alignment?: AlignmentType,
|
alignment?: AlignmentType,
|
||||||
|
italics?: boolean,
|
||||||
}): Paragraph {
|
}): Paragraph {
|
||||||
|
|
||||||
return new Paragraph({
|
return new Paragraph({
|
||||||
@ -116,6 +117,7 @@ export function createSimpleText(data: {
|
|||||||
font: data.font ?? "Arial",
|
font: data.font ?? "Arial",
|
||||||
size: data.size,
|
size: data.size,
|
||||||
underline: data.underline,
|
underline: data.underline,
|
||||||
|
italics: data.italics,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
alignment: data.alignment ?? AlignmentType.CENTER,
|
alignment: data.alignment ?? AlignmentType.CENTER,
|
||||||
|
Loading…
Reference in New Issue
Block a user