65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
const fs = require('fs');
|
|
const pdfParse = require('pdf-parse-fork');
|
|
|
|
function pdf_parse(travel: string){
|
|
interface PdfData {
|
|
text: string;
|
|
}
|
|
|
|
let fournisseur = '';
|
|
let date = '';
|
|
|
|
interface tab_res {
|
|
marque : string;
|
|
date_achats : string;
|
|
}
|
|
|
|
const dataBuffer = fs.readFileSync(travel);
|
|
|
|
pdfParse(dataBuffer)
|
|
.then((data: PdfData) => {
|
|
// on regarde si c'est auchan ou metro
|
|
const regexAuchan = /auchan/i;
|
|
if (regexAuchan.test(data.text)) {
|
|
fournisseur = "Auchan"
|
|
|
|
// on regarde la date d'achat avec une expression reguliere pour auchan
|
|
const regexDate = /(\d{2})\/(\d{2})\/(\d{4})/;
|
|
const correspondance = data.text.match(regexDate);
|
|
if (correspondance) {
|
|
date = correspondance[0]
|
|
} else {
|
|
date = "non trouvé"
|
|
}
|
|
|
|
} else {
|
|
fournisseur = "Metro"
|
|
|
|
// on regarde la date d'achat avec une expression reguliere pour metro
|
|
const regexDate = /(\d{2})-(\d{2})-(\d{4})/;
|
|
const correspondance = data.text.match(regexDate);
|
|
if (correspondance) {
|
|
date = correspondance[0]
|
|
} else {
|
|
date = "non trouvé"
|
|
}
|
|
}
|
|
|
|
// on renvoie les valeur avec un seul objet
|
|
|
|
const res : tab_res = {
|
|
marque: fournisseur,
|
|
date_achats: date
|
|
}
|
|
|
|
console.log(res);
|
|
|
|
})
|
|
|
|
|
|
.catch((error: unknown) => {
|
|
console.error("Erreur :", error);
|
|
});
|
|
}
|
|
|
|
export default pdf_parse; |