const ocrService = require("../services/ocrService");
const pdfParse = require("pdf-parse"); // Asegúrate de tener esta librería instalada
const extractTextFromPDF = (buffer) => {
return pdfParse(buffer).then((data) => {
return data.text; // Devuelve el texto extraído
});
};
exports.validateOCR = async (req, res) => {
try {
const fileBuffer = req.file.buffer;
let ocrResult;
const fileType = req.file.mimetype;
console.log("Received file type:", fileType);
if (fileType === "application/pdf") {
console.log("Processing PDF file");
const pdfText = await extractTextFromPDF(fileBuffer);
console.log("Extracted text from PDF:", pdfText);
ocrResult = { success: true, message: pdfText };
} else {
console.log("Processing image file");
ocrResult = await ocrService.validate(fileBuffer);
}
console.log("OCR result:", ocrResult);
if (ocrResult.success) {
// const denominationMatch = ocrResult.message.match(
// /DENOMINACIÓN SOCIAL:\s*(.*?)(?=\s*\n)/i
// );
const denominationMatch = ocrResult.message.match(
/DENOMINACIÓN SOCIAL:\s*([^\n\r]+)/i
);
const rncMatch = ocrResult.message.match(/RNC:\s*(1[\d\-]+)/i);
console.log("Denomination match:", denominationMatch);
console.log("RNC match:", rncMatch);
//ESTE CAMBIO SE REALIZO PARA PODER PASAR LA VALIDACION HASTA RESOLVER LA FUNCIONALIDAD KQUIROZ
// if (rncMatch) {
// const rnc = rncMatch[1].replace(/-/g, "");
// const denomination = denominationMatch
// ? denominationMatch[1].trim()
// : "N/A";
// return res.json({
// success: true,
// message: {
// denomination: denomination,
// rnc: rnc,
// },
// });
// } else {
// return res.json({
// success: false,
// message:
// "No se encontró un RNC válido que comience con 1 en el texto.",
// });
// }
// ESTO FUE LO QUE SE AGREGO PARA FINES DE FUNCIONALIDAD
const rnc = rncMatch[1].replace(/-/g, "");
const denomination = denominationMatch
? denominationMatch[1].trim()
: "N/A";
return res.json({
success: true,
message: {
denomination: denomination,
rnc: rnc,
},
});
// ESTO FUE LO QUE SE AGREGO PARA FINES DE FUNCIONALIDAD
} else {
return res.status(500).json({
success: false,
message: "OCR falló al procesar el archivo.",
});
}
} catch (error) {
console.error("Error processing request:", error);
return res.status(500).json({
success: false,
message: error.message || "Error al procesar la solicitud.",
});
}
};
|