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 };