mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-13 08:13:49 +10:00
Feature: Toggle Page Size between ISO A4 and US Letter
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
"start": "node dist/main"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.186.0",
|
||||
"@aws-sdk/client-s3": "^3.188.0",
|
||||
"@nestjs/axios": "^0.1.0",
|
||||
"@nestjs/common": "^9.1.4",
|
||||
"@nestjs/config": "^2.2.0",
|
||||
@ -23,14 +23,14 @@
|
||||
"@nestjs/typeorm": "^9.0.1",
|
||||
"@types/passport": "^1.0.11",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"cache-manager": "^5.0.0",
|
||||
"cache-manager": "^5.0.1",
|
||||
"class-transformer": "^0.5.1",
|
||||
"class-validator": "^0.13.2",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"csvtojson": "^2.0.10",
|
||||
"dayjs": "^1.11.5",
|
||||
"google-auth-library": "^8.5.2",
|
||||
"joi": "^17.6.2",
|
||||
"joi": "^17.6.3",
|
||||
"lodash": "^4.17.21",
|
||||
"multer": "^1.4.4",
|
||||
"nanoid": "^3.3.4",
|
||||
@ -41,7 +41,7 @@
|
||||
"passport-local": "^1.0.0",
|
||||
"pdf-lib": "^1.17.1",
|
||||
"pg": "^8.8.0",
|
||||
"playwright-chromium": "^1.26.1",
|
||||
"playwright-chromium": "^1.27.1",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"rimraf": "^3.0.2",
|
||||
"rxjs": "^7.5.7",
|
||||
@ -57,7 +57,7 @@
|
||||
"@types/express": "^4.17.14",
|
||||
"@types/lodash": "^4.14.186",
|
||||
"@types/multer": "^1.4.7",
|
||||
"@types/node": "^18.8.3",
|
||||
"@types/node": "^18.8.5",
|
||||
"@types/nodemailer": "^6.4.6",
|
||||
"@types/passport-jwt": "^3.0.7",
|
||||
"@types/passport-local": "^1.0.34",
|
||||
|
||||
@ -932,6 +932,9 @@ export class IntegrationsService {
|
||||
body: get(jsonResume, 'metadata.fontSize'),
|
||||
},
|
||||
},
|
||||
page: {
|
||||
format: 'A4',
|
||||
},
|
||||
theme: {
|
||||
background: get(jsonResume, 'metadata.colors.background'),
|
||||
primary: get(jsonResume, 'metadata.colors.primary'),
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { SchedulerRegistry } from '@nestjs/schedule';
|
||||
import { PageConfig } from '@reactive-resume/schema';
|
||||
import { mkdir, unlink, writeFile } from 'fs/promises';
|
||||
import { nanoid } from 'nanoid';
|
||||
import { join } from 'path';
|
||||
@ -35,13 +36,18 @@ export class PrinterService implements OnModuleInit, OnModuleDestroy {
|
||||
await page.goto(`${url}/${username}/${slug}/printer?secretKey=${secretKey}`);
|
||||
await page.waitForSelector('html.wf-active');
|
||||
|
||||
const resumePages = await page.$$eval('[data-page]', (pages) => {
|
||||
return pages.map((page, index) => ({
|
||||
const pageFormat: PageConfig['format'] = await page.$$eval(
|
||||
'[data-page]',
|
||||
(pages) => pages[0].getAttribute('data-format') as PageConfig['format']
|
||||
);
|
||||
|
||||
const resumePages = await page.$$eval('[data-page]', (pages) =>
|
||||
pages.map((page, index) => ({
|
||||
pageNumber: index + 1,
|
||||
innerHTML: page.innerHTML,
|
||||
height: page.clientHeight,
|
||||
}));
|
||||
});
|
||||
}))
|
||||
);
|
||||
|
||||
const pdf = await PDFDocument.create();
|
||||
const directory = join(__dirname, '..', 'assets/exports');
|
||||
@ -52,9 +58,9 @@ export class PrinterService implements OnModuleInit, OnModuleDestroy {
|
||||
await page.evaluate((page) => (document.body.innerHTML = page.innerHTML), resumePages[index]);
|
||||
|
||||
const buffer = await page.pdf({
|
||||
width: '210mm',
|
||||
printBackground: true,
|
||||
height: resumePages[index].height,
|
||||
width: pageFormat === 'A4' ? '210mm' : '216mm',
|
||||
});
|
||||
|
||||
const pageDoc = await PDFDocument.load(buffer);
|
||||
|
||||
@ -138,6 +138,9 @@ const defaultState: Partial<Resume> = {
|
||||
date: {
|
||||
format: 'MMMM DD, YYYY',
|
||||
},
|
||||
page: {
|
||||
format: 'A4',
|
||||
},
|
||||
layout: [
|
||||
[
|
||||
['work', 'education', 'projects', 'volunteer', 'references'],
|
||||
|
||||
Reference in New Issue
Block a user