- Creazione PDF Temporanei (Generati)

- Assegnazione di questi su PDF OnLine e PDF per Stampa
This commit is contained in:
Surya Paolo
2025-05-12 18:43:30 +02:00
parent 5ab24b2abd
commit ee3846159c
2 changed files with 69 additions and 9 deletions

View File

@@ -86,6 +86,10 @@ const CatalogSchema = new Schema({
data_online: {
type: Date,
},
pdf_online_stampa: String,
data_online_stampa: {
type: Date,
},
date_created: {
type: Date,

View File

@@ -27,6 +27,8 @@ const Gasordine = require('../models/gasordine');
const { User } = require('../models/user');
const { Catalog } = require('../models/catalog');
const server_constants = require('../tools/server_constants');
const { ImageDownloader } = require('../tools/general.js');
@@ -290,9 +292,15 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) {
});
}
let addstr = '';
if (options.compressione) {
addstr = '_temp.pdf';
}
// Salva il nuovo PDF
const pdfBytes = await newPdfDoc.save();
fs.writeFileSync(outputFile, pdfBytes);
fs.writeFileSync(outputFile + addstr, pdfBytes);
console.log(`PDF convertito e salvato come '${outputFile}'`);
const comprimi = false;
@@ -302,9 +310,10 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) {
if (options.compressione) {
const todayDate = tools.getDateYYYYMMDD_Today();
const compressed = tools.removeFileExtension(outputFile) + `_${todayDate}.pdf`;
//const compressed = tools.removeFileExtension(outputFile) + `_${todayDate}.pdf`;
const compressed = tools.removeFileExtension(outputFile) + `_generato.pdf`;
await compressPdf(outputFile, compressed, options.compressione);
await compressPdf(outputFile + addstr, compressed, options.compressione);
if (mostrainfo) extractPdfInfo(compressed);
@@ -314,7 +323,6 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) {
if (options.dir_out && options.idapp) {
// Crea directory se non esiste !
// Salva il fileout anche su questa directory dir_out
//const fileoutdir = path.join(options.dir_out, options.file_out);
//await fs.promises.copyFile(fileout, fileoutdir);
//console.log(`File ${fileout} anche salvato in ${options.dir_out}`);
@@ -322,7 +330,6 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) {
let fileout_print = '';
// Crea anche il PDF per la stampa
if (
options.print_left !== 0 ||
@@ -337,7 +344,7 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) {
const uscita = {
pdf_generato: tools.removePathDirByFileName(options.idapp, fileout),
pdf_generato_stampa: tools.removePathDirByFileName(options.idapp, ris.fileout_print),
}
};
return uscita;
} catch (e) {
@@ -357,7 +364,7 @@ async function ConvertPDF_WithMargins(options) {
return { err: 'Nessun file caricato.' };
}
const outputFilename = path.basename(tools.removeFileExtension(options.filenameIn))+ '-stampabile.pdf';
const outputFilename = path.basename(tools.removeFileExtension(options.filenameIn)) + '-stampabile.pdf';
const outputPath = path.join(options.dir_out, outputFilename);
try {
@@ -395,10 +402,9 @@ async function ConvertPDF_WithMargins(options) {
const pdfBytes = await destPdfDoc.save();
await fs.promises.mkdir(options.dir_out, { recursive: true });
await fs.promises.writeFile(outputPath, pdfBytes);
fileout_print = outputPath;
} catch (error) {
const log = 'Errore durante la creazione del PDF per la Stampa:' + error.message;
@@ -409,6 +415,56 @@ async function ConvertPDF_WithMargins(options) {
return { fileout_print };
}
router.post('/online-pdf', authenticate, async (req, res) => {
console.log('/online-pdf');
idapp = req.body.idapp;
id_catalog = req.body.id_catalog;
stampa = req.body.stampa;
let mydir = '';
let risout = {};
try {
// Aggiorna il PDF OnLine, copiando il file da Generato a OnLine
let catalog = await Catalog.findOne({ _id: id_catalog });
if (catalog) {
mydir = tools.getdirByIdApp(idapp);
// const baseurl = this.getHostByIdApp(idapp);
if (stampa) {
catalog.pdf_online_stampa = catalog.pdf_generato_stampa.replace('_generato', '');
} else {
catalog.pdf_online = catalog.pdf_generato.replace('_generato', '');
}
// Aggiorna il PDF OnLine, copiando il file da Generato a OnLine
const fileOrigin = mydir + (stampa ? catalog.pdf_generato_stampa : catalog.pdf_generato);
const fileDest = mydir + (stampa ? catalog.pdf_online_stampa : catalog.pdf_online);
const fileDestNoDir = (stampa ? catalog.pdf_online_stampa : catalog.pdf_online);
// copia il file
await fs.promises.copyFile(fileOrigin, fileDest);
if (stampa) {
catalog.data_online_stampa = catalog.data_generato_stampa;
} else {
catalog.data_online = catalog.data_generato;
}
// Aggiorna il record
await catalog.save();
risout = {catalog: catalog._doc};
}
// risout
return res.status(200).send(risout);
} catch (e) {
console.error('Err Online-pdf', e.message);
}
});
// Endpoint POST per la conversione del PDF
router.post('/convert-pdf', upload.single('pdf'), async (req, res) => {
if (!req.file) {