Come creare PDF in Node.js utilizzando PDFKit

Come creare PDF in Node.js utilizzando PDFKit

PDFKit è una libreria Node.js che semplifica agli sviluppatori la creazione e l’utilizzo di file PDF. Offre un’API semplice ma efficace per la produzione di PDF e l’aggiunta di diversi tipi di contenuto, come testo, immagini e forme.

Scopri come utilizzare PDF Kit per creare PDF in Node.js.

Configurazione di PDFkit

Devi avere Node.js e npm (il gestore di pacchetti Node.js) installati sulla tua macchina per seguire.

Assicurati di aver installato questi strumenti eseguendo i seguenti comandi del terminale:

node -v
npm -v

Per iniziare a utilizzare PDFKit nel tuo progetto Node.js, installalo eseguendo il seguente comando npm:

npm install pdfkit

Questo comando installerà PDFKit e lo aggiungerà alle dipendenze del tuo progetto.

Creazione di un documento PDF con PDFKit

Per creare un documento PDF utilizzando PDFKit, richiedi il pacchetto pdfkit e il modulo fs (file system) nel tuo file di script:

const PDFDocument = require('pdfkit');
const fs = require('fs');

Successivamente, crea una nuova istanza della classe PDFDocument . Questa classe rappresenta un file PDF:

const doc = new PDFDocument();

L’istanza creata è un flusso leggibile, il che significa che è possibile utilizzare il metodo pipe() per salvarne il contenuto in un file.

Per fare ciò, reindirizza l’ istanza doc in un flusso scrivibile creato da fs.createWriteStream :

doc.pipe(fs.createWriteStream('MyPDFDoc.pdf'));

Il metodo createWriteStream salva il contenuto di un file PDF in una posizione specificata nel file system locale.

Il blocco di codice precedente salverà il file PDF risultante nella directory di lavoro corrente, con il nome MyPDFDoc.pdf .

È importante terminare sempre il flusso dopo aver aggiunto contenuto al PDF. Puoi farlo usando questo comando:

doc.end();

Eseguire ora il comando node node [nome script] per creare il file PDF MyPDFDoc.pdf nella directory di lavoro corrente.

Aggiunta di testo con PDFKit

Prima di reindirizzare il documento per salvarlo, puoi apportare varie modifiche. PDFKit semplifica l’aggiunta di testo ai documenti e include molte opzioni per personalizzare la visualizzazione dell’output.

Per aggiungere testo al documento, chiama semplicemente il metodo text() e passa il testo che vuoi aggiungere come argomento:

doc.text("Coding is Easy!")

Man mano che PDFKIT aggiunge testo al documento, tiene traccia delle posizioni X e Y correnti di quel testo. Quindi, ogni volta che chiami il metodo di testo, PDFKit aggiungerà una nuova riga sotto quella precedente.

Tuttavia, fornendo le coordinate X e Y al metodo text dopo il testo stesso, puoi cambiarne la posizione:

doc.text('Coding is Easy!', 100, 100)

Per spostarti su o giù di una riga, chiama il metodo moveDown o moveUp con il numero di righe che il testo deve spostare:

doc.moveDown(3);

doc.moveUp();

Per impostazione predefinita, chiamare uno dei due metodi senza passare un argomento lo farà spostare di una sola riga.

PDFKit supporta ciascuno dei 14 caratteri standard definiti dal formato PDF. La documentazione di testo PDFKit ha un elenco completo di questi caratteri standard.

Utilizzare il metodo font() per specificare il carattere richiesto. Basta passare il nome del carattere corrispondente come stringa:

doc.font('Times-Roman')
   .text('Coding is Easy!');

È inoltre possibile modificare la dimensione del carattere e il colore del testo utilizzando rispettivamente i metodi fontSize() e fillColor() .

Per esempio:

// This changes the text color to red and gives it a font size of 8
doc.fillColor('red')
   .fontSize(8)
   .text('Coding is Easy!');

Aggiunta di immagini con PDFKit

A un’immagine nel tuo documento PDF, passa semplicemente il suo percorso al metodo dell’immagine sull’istanza del documento:

doc.image('path/to/image.jpeg')

PDFKit ti consente di aggiungere immagini in formato JPEG o PNG.

Per impostazione predefinita, PDFKit inserirà l’immagine nella sua dimensione nativa. Puoi modificare le dimensioni di un’immagine fornendo un oggetto contenente coppie chiave-valore come argomento al metodo image() . È possibile specificare larghezza, altezza e allineamento orizzontale e verticale.

Per esempio:

// Specifying the width alone
doc.image('path/to/image.jpg', { width: 300 });

// Specifying both the width and height
doc.image('path/to/image.jpg', { width: 300, height:200 })

Aggiunta di pagine con PDFKit

Per aggiungere nuove pagine al documento PDF, chiama semplicemente il metodo addPage sull’istanza del documento:

doc.addPage()

Per aggiungere automaticamente contenuto ogni volta che aggiungi una nuova pagina, utilizza l’ evento pageAdded nell’istanza del documento.

Per esempio:

doc.on('pageAdded', () => doc.text("Coding is Easy!"));

PDFKit ti consente di specificare le dimensioni della pagina quando crei un nuovo documento o aggiungi una nuova pagina a una esistente. Esistono diverse dimensioni di pagina predefinite spiegate nella documentazione cartacea di PDFKit .

Per utilizzare una qualsiasi di queste dimensioni di pagina predefinite, passare un oggetto al costruttore PDFDocument o al metodo addPage() . Utilizzare la proprietà size per specificare una stringa che è il nome del formato carta.

Per esempio:

// constructor
const doc = new PDFDocument({ size: 'A5' });

// addPage function
doc.addPage({ size: 'A7' });

Il passaggio di questo oggetto options al costruttore PDFDocument imposta la dimensione pagina predefinita per l’intero documento. È quindi possibile sovrascrivere questo valore predefinito passando un valore diverso al metodo addPage .

Puoi impostare i margini della pagina passando un oggetto alla proprietà margins quando aggiungi pagine.

La proprietà margins accetta un oggetto con proprietà top, bottom, left e right che rappresentano ciascun margine.

Per esempio:

// Add different margins on each side
doc.addPage({
  margins: {
    top: 72,
    bottom: 72,
    left: 50,
    right: 50
  }
});

Questo codice imposta i margini superiore e inferiore a 72 punti e i margini sinistro e destro a 50 punti. Tieni presente che il margine predefinito per i documenti creati da PDFKit è un margine di 1 pollice (72 punti) su tutti i lati.

Per impostare tutti i margini superiore, inferiore, sinistro e destro sullo stesso valore, passa semplicemente un oggetto con una proprietà margin al metodo addPage :

doc.addPage({ margin: 60 }) // add a 60 point margin to each side

I vantaggi della creazione di PDF con PDFKit in Node.js

PDFKit ti consente di produrre documenti standard e supportati dalle tue applicazioni Node.js. Con PDFKit, puoi gestire facilmente documenti complessi. Inoltre, può facilitare la consegna dei documenti agli utenti e semplificarne la condivisione e la stampa.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *