135 lines
4.7 KiB
JavaScript
135 lines
4.7 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const pdf2html = require('pdf2html');
|
|
const { exec } = require('child_process');
|
|
|
|
const diretorioArquivos = '/var/www/html/maker_book';
|
|
//const pathToJar = '/var/www/logicworld_api/node_modules/pdf2html/vendor/tika-app-2.6.0.jar';
|
|
|
|
const salvarPDF = (arquivo, nome) => {
|
|
console.log("Salvando arquivo...");
|
|
const novoNome = `${nome}.pdf`;
|
|
const diretorioDestino = path.join(diretorioArquivos, `/materials`);
|
|
const novoCaminho = path.join(diretorioDestino, novoNome);
|
|
|
|
if (!fs.existsSync(diretorioDestino)){
|
|
fs.mkdirSync(diretorioDestino, { recursive: true });
|
|
}
|
|
|
|
if (arquivo.filepath) {
|
|
try {
|
|
fs.renameSync(arquivo.filepath, novoCaminho);
|
|
console.log(`PDF salvo em ${novoCaminho}`);
|
|
} catch (error) {
|
|
console.error(`Erro ao salvar o PDF em ${novoCaminho}:`, error);
|
|
}
|
|
} else {
|
|
console.error(`Tipo de arquivo não suportado ou caminho temporário ausente para ${novoCaminho}`);
|
|
}
|
|
console.log("PDF salvo com sucesso!");
|
|
};
|
|
|
|
const exibirPDF = (arquivo, res, callback) => {
|
|
const caminho = path.join(diretorioArquivos, 'materials', `${arquivo}.pdf`);
|
|
console.log(`Carregando PDF de ${caminho}`);
|
|
|
|
fs.access(caminho, fs.constants.F_OK, (err) => {
|
|
if (err) {
|
|
console.error(`Erro ao acessar o arquivo: ${err}`);
|
|
return callback(err);
|
|
}
|
|
|
|
res.setHeader('Content-Type', 'application/pdf');
|
|
res.setHeader('Content-Disposition', 'inline; filename=' + arquivo + '.pdf');
|
|
fs.createReadStream(caminho).pipe(res).on('error', (streamErr) => {
|
|
console.error(`Erro ao ler o arquivo: ${streamErr}`);
|
|
callback(streamErr);
|
|
});
|
|
});
|
|
};
|
|
|
|
async function processarPDF(arquivo) {
|
|
try {
|
|
const html = await exibirPDF(arquivo);
|
|
console.log('HTML:', html);
|
|
// Faça algo com o HTML aqui
|
|
} catch (err) {
|
|
console.error('Falha ao processar PDF:', err);
|
|
// Trate o erro aqui
|
|
}
|
|
}
|
|
|
|
const salvarImagem = (imagem, nome, destino) => {
|
|
console.log("Salvando imagem...");
|
|
const novoNome = `${nome}.jpg`;
|
|
const diretorioDestino = path.join(diretorioArquivos, destino);
|
|
const novoCaminho = path.join(diretorioDestino, novoNome);
|
|
|
|
if (!fs.existsSync(diretorioDestino)){
|
|
fs.mkdirSync(diretorioDestino, { recursive: true });
|
|
}
|
|
|
|
if (imagem.filepath) {
|
|
try {
|
|
fs.renameSync(imagem.filepath, novoCaminho);
|
|
console.log(`Imagem salva em ${novoCaminho}`);
|
|
} catch (error) {
|
|
console.error(`Erro ao salvar a imagem em ${novoCaminho}:`, error);
|
|
}
|
|
} else {
|
|
console.error(`Tipo de arquivo não suportado ou caminho temporário ausente para ${novoCaminho}`);
|
|
}
|
|
console.log("Imagens salvas com sucesso!");
|
|
};
|
|
|
|
const salvarImagens = (imagens, destino) => {
|
|
console.log("Salvando imagens...");
|
|
imagens.forEach((imagem, index) => {
|
|
const novoNome = `${index}.jpg`;
|
|
const diretorioDestino = path.join(diretorioArquivos, destino);
|
|
const novoCaminho = path.join(diretorioDestino, novoNome);
|
|
|
|
if (!fs.existsSync(diretorioDestino)){
|
|
fs.mkdirSync(diretorioDestino, { recursive: true });
|
|
}
|
|
|
|
if (imagem.filepath) {
|
|
try {
|
|
fs.renameSync(imagem.filepath, novoCaminho);
|
|
console.log(`Imagem salva em ${novoCaminho}`);
|
|
} catch (error) {
|
|
console.error(`Erro ao salvar a imagem em ${novoCaminho}:`, error);
|
|
}
|
|
} else {
|
|
console.error(`Tipo de arquivo não suportado ou caminho temporário ausente para ${novoCaminho}`);
|
|
}
|
|
});
|
|
console.log("Imagens salvas com sucesso!");
|
|
};
|
|
|
|
const excluirArquivo = (caminho) => {
|
|
console.log("Excluindo arquivo...");
|
|
const caminhoCompleto = path.join(diretorioArquivos, caminho);
|
|
if (fs.existsSync(caminhoCompleto)) {
|
|
fs.unlinkSync(caminhoCompleto);
|
|
} else {
|
|
console.log("Arquivo não encontrado. " + caminhoCompleto);
|
|
}
|
|
}
|
|
|
|
const excluirDiretorioEArquivos = (caminho) => {
|
|
const diretorio = path.join(diretorioArquivos, caminho);
|
|
if (fs.existsSync(diretorio)) {
|
|
fs.readdirSync(diretorio).forEach((arquivo) => {
|
|
const caminhoCompleto = path.join(diretorio, arquivo);
|
|
excluirArquivo(caminhoCompleto);
|
|
});
|
|
|
|
fs.rmdirSync(diretorio);
|
|
console.log(`Diretório ${diretorio} e seus arquivos foram excluídos.`);
|
|
} else {
|
|
console.log("Diretório não encontrado.");
|
|
}
|
|
};
|
|
|
|
module.exports = { salvarPDF, processarPDF, exibirPDF, salvarImagem, salvarImagens, excluirArquivo, excluirDiretorioEArquivos }; |