stavo andando attraverso il documentation per pdfmake in cui danno il seguente codice per impostare l'orientamento della pagina:
var docDefinition = {
// a string or { width: number, height: number }
pageSize: 'A5',
// by default we use portrait, you can change it to landscape if you wish
pageOrientation: 'landscape',
...
//Other content
};
Ora l'essenza di questo intero progetto è l'oggetto di definizione del documento, che è unico, credo. Anche sulle github page e le questioni di cui, non vedo una disposizione della pagina di impostazione dell'orientamento per pagine specifiche, anche se è possibile aggiungere interruzioni di pagina in questo modo:
(...)
'You can also fit the image inside a rectangle',
{
image: 'fonts/sampleImage.jpg',
fit: [100, 100],
pageBreak: 'after'
},
(...)
Detto questo, io credo che ci sia una soluzione per la vostra problema. Vedete, questo è come il documento pdf
è generato in questo progetto:
var fs = require('fs');
var pdfDoc = printer.createPdfKitDocument(docDefinition);
pdfDoc.pipe(fs.createWriteStream('pdfs/basics.pdf'));
pdfDoc.end();
Naturalmente i moduli pipe e fs
sono implementazioni nodo. Tuttavia, dal momento che abbiamo l'orientamento della pagina associata a un oggetto definizione del documento, se abbiamo più definizioni doc in questo modo:
var pdf1 = printer.createPdfKitDocument(docdef1); //landscape mode page 1
var pdf2 = printer.createPdfKitDocument(docdef2); //portrait mode page 2
var pdf3 = printer.createPdfKitDocument(docdef3); //landscape mode for the rest of the pages.
Ora possiamo semplicemente usare la bandiera append
nel metodo createWriteStream()
. Utile documentation. (Codice non testato)
pdf1.pipe(fs.createWriteStream('foo.pdf'));
pdf2.pipe(fs.createWriteStream('foo.pdf',{flags:'a'}));
pdf3.pipe(fs.createWriteStream('foo.pdf',{flags:'a'}));
pdf1.end();
pdf2.end();
pdf3.end();
stavo solo suggerendo come si potrebbe fare per la combinazione degli oggetti definizione del documento. Spero che tu inizi nella giusta direzione.
grazie per la vostra risposta, proverò subito il vostro suggerimento e vi informerò sul risultato. Voglio solo renderlo sicuro, il tuo metodo è creare 3 pdf o solo 1 pdf? btw, Il mio obiettivo è creare 1 pdf con diverso orientamento –
Vedo il tuo punto, hai provato a combinare 3 pdf generati in 1 file pdf. L'ho provato, ma è solo la prima pagina. :( ' –
btw, qui il mio [code] (https://gist.github.com/ismile/3db044e5d557a8912b22) –