Photo calendar generator (initially made for Dominika&Daniel wedding)
- Setup nodejs or run in nodejs-enabled container
- Clone the repository
git clone [email protected]:Jblew/photo-calendar-generator.git
- Install the dependencies
npm install
- Paste all your photos into the photos directory
- Enter significant dates that you want to be included in the calendar into the
significant-dates.txt
file. The format isdd.mm TEXT
(printed in every year) ordd.mm.yyyy TEXT
(printed only once) - Configure the calendar in the
src/config.ts
file:{ // ... startDate: new Date("2022-05-01T00:00:00Z"), // Use UTC ISO date because otherwise summer time changes messes with dates pages: [ // possible layouts: // "single" | "double" | "triple" | "four" | "four-asym" | "six" | "ltb" | "tbr" | "l-five" | "r-five" { graphicsLayout: "single", photoFilenames: ["default.jpg"] }, // { random: true } will use random arrangement and random photos ...[...Array(23)].map(i => ({ random: true } as const)), ], // the number of pages is based on the length of the above array // you can also change the month names, days of weeks and paths using other config fields // ... }
- Run
npm run build
- Run
npm run serve
- Open http:https://localhost:8080/ in your browser.
What you see is not a print layout. The screen layout differs from what you will get in the print.
- Click Ctrl+P or select print from the browser window menu. Set page size to A3 for best results. You may have to wait a substantial amount of time until the preview becomes available. The time depends on the resolution and count of photos used. (24 month * 5K photos may take even 20 minutes).
- Print to PDF
- (optional) Play with the layout settings using
src/style/*.scss
files. Hittingnpm run build
will compile both the HTML and SCSS.