eeg_nest/docx/main.ts

267 lines
6.8 KiB
TypeScript
Raw Normal View History

2023-05-10 16:37:35 +00:00
import * as fs from "fs";
import {
Document, Packer, Paragraph, TextRun, PageOrientation, ImageRun,
HorizontalPositionRelativeFrom, VerticalPositionRelativeFrom,
convertMillimetersToTwip,
HorizontalPositionAlign,
} from "docx";
import { join } from "path";
function cm(centimeters: number) {
return convertMillimetersToTwip((100 * centimeters) / 150);
}
function cmToEmu(cm: number) {
return Math.round(cm * 360000);
}
const imgFondoDoc = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "fondo_certificado.png")),
transformation: {
height: cm(20.97),
width: cm(29.8),
},
floating: {
zIndex: 0,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: 0,
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: 0,
},
},
});
const imgMatpel = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "matpel-logo.png")),
transformation: {
height: cm(2.81),
width: cm(2.81),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(0.7),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(0.7),
},
},
});
const imgCIP = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "colegio_ingenieros_logo.png")),
transformation: {
height: cm(2.15),
width: cm(2.15),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(0.91),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(3.64),
},
},
});
const imgCEE = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "cee_logo.png")),
transformation: {
height: cm(2.22),
width: cm(3.11),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(0.29),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(18),
},
},
});
const imgMTC = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "mtc_logo.png")),
transformation: {
height: cm(1.3),
width: cm(4.08),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(5.13),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(19.33),
},
},
});
const imgEEG = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "eeg_f_logo.png")),
transformation: {
height: cm(4.39),
width: cm(6.4),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(23.25),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(0),
},
},
});
const imgOSHA = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "osha_logo.png")),
transformation: {
height: cm(1.55),
width: cm(4.46),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(24.34),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(4.95),
},
},
});
const imgAguila = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "aguila_logo.png")),
transformation: {
height: cm(2.62),
width: cm(2.68),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(25.45),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(6.57),
},
},
});
const imgMichigan = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "michigan_logo.png")),
transformation: {
height: cm(2.47),
width: cm(2.6),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(25.59),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(9.54),
},
},
});
const imgCEEM = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "ceem_logo.jpg")),
transformation: {
height: cm(1),
width: cm(3.99),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(24.97),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(12.5),
},
},
});
const imgEATE = new ImageRun({
data: fs.readFileSync(join(__dirname, "img", "eate_logo.jpg")),
transformation: {
height: cm(2.21),
width: cm(3.28),
},
floating: {
zIndex: 1,
horizontalPosition: {
relative: HorizontalPositionRelativeFrom.LEFT_MARGIN,
offset: cmToEmu(25.54),
},
verticalPosition: {
relative: VerticalPositionRelativeFrom.TOP_MARGIN,
offset: cmToEmu(14.09),
},
},
});
const doc = new Document({
sections: [
{
properties: {
page: {
size: {
orientation: PageOrientation.LANDSCAPE,
},
},
},
children: [
new Paragraph({
children: [
imgFondoDoc,
imgMatpel,
imgCIP,
imgCEE,
imgMTC,
imgEEG,
imgOSHA,
imgAguila,
imgMichigan,
imgCEEM,
imgEATE,
],
}),
],
},
],
});
// Used to export the file into a .docx file
Packer.toBuffer(doc).then((buffer) => {
fs.writeFileSync("My Document.docx", buffer);
});