├── README.md ├── index.js └── package.json /README.md: -------------------------------------------------------------------------------- 1 | # pdfkit 2 | 3 | [JSBox Node.js](https://cyanzhong.github.io/jsbox-nodejs/#/en/) example that shows you: 4 | 5 | - How to use native modules like `photo` and `device` 6 | - How to use 3rd-party modules like `pdfkit` 7 | - How to transfer files with `Buffer` objects 8 | 9 | # Instructions 10 | 11 | - Install [JSBox](https://apps.apple.com/us/app/id1312014438) 2.0 12 | - Resolve dependencies 13 | - Run the script, select photos to create a PDF -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const PDFDocument = require("pdfkit"); 3 | const photo = require("photo"); 4 | const device = require("device"); 5 | const info = device.info(); 6 | const height = info.screen.height; 7 | 8 | async function main() { 9 | const {results} = await photo.pick({ 10 | multi: true 11 | }); 12 | 13 | const doc = new PDFDocument({ 14 | autoFirstPage: false 15 | }); 16 | 17 | console.log("Processing..."); 18 | doc.pipe(fs.createWriteStream("photos.pdf")); 19 | 20 | results.forEach(item => { 21 | const buffer = item.data; 22 | doc.addPage({ 23 | margin: 0 24 | }).image(buffer, { 25 | height: height, 26 | align: "center", 27 | valign: "center" 28 | }); 29 | }); 30 | 31 | doc.end(); 32 | console.log("Done."); 33 | } 34 | 35 | main(); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "pdfkit": "^0.11.0" 4 | } 5 | } 6 | --------------------------------------------------------------------------------