PDF to CSV Mock Test Tool


📚 PDF to CSV Mock Test Generator




Koi file select nahi ki gayi

Extracted Data Preview

Questions: 0/20

TypeQuestion TitleOption AOption BOption COption DAnswerDescriptionImage URL

// Naya function file ka naam dikhane ke liye function showFileName() { const fileInput = document.getElementById('pdfFile'); const fileNameDisplay = document.getElementById('fileNameDisplay'); if (fileInput.files.length > 0) { fileNameDisplay.innerHTML = `Selected: ${fileInput.files[0].name}`; } else { fileNameDisplay.innerHTML = "Koi file select nahi ki gayi"; } }

async function processPDF() { const fileInput = document.getElementById('pdfFile'); const statusDiv = document.getElementById('loadingStatus');

if (fileInput.files.length === 0) { statusDiv.innerHTML = "Kripya pehle 'Choose PDF File' par click karke ek PDF select karein!"; return; }

statusDiv.innerHTML = "Processing PDF... Kripya pratiksha karein..."; const file = fileInput.files[0]; const fileReader = new FileReader();

fileReader.onload = async function() { const typedarray = new Uint8Array(this.result); try { const pdf = await pdfjsLib.getDocument(typedarray).promise; let fullText = "";

for (let i = 1; i <= pdf.numPages; i++) { const page = await pdf.getPage(i); const textContent = await page.getTextContent(); const pageText = textContent.items.map(item => item.str).join(" "); fullText += pageText + " \n"; }

parseTextToCSV(fullText); statusDiv.innerHTML = "PDF successfully extract ho gayi! Niche check karein."; document.getElementById('downloadBtn').disabled = false; } catch (error) { statusDiv.innerHTML = "Error: PDF read nahi ho saki. Yeh file shayad image-based PDF hai."; console.error(error); } };

fileReader.readAsArrayBuffer(file); }

function parseTextToCSV(text) { let parts = text.split(/(?=\b\d{1,2}\s*\.)/); extractedQuestions = [];

parts.forEach(part => { if (part.trim().length > 10) { let qText = part.trim(); let options = ["", "", "", ""];

const optARegex = /(?:\(a\)|a\))\s*(.*?)(?=\(b\)|b\)|\(c\)|c\)|\(d\)|d\)|$)/i; const optBRegex = /(?:\(b\)|b\))\s*(.*?)(?=\(c\)|c\)|\(d\)|d\)|$)/i; const optCRegex = /(?:\(c\)|c\))\s*(.*?)(?=\(d\)|d\)|$)/i; const optDRegex = /(?:\(d\)|d\))\s*(.*)/i;

let matchA = qText.match(optARegex); let matchB = qText.match(optBRegex); let matchC = qText.match(optCRegex); let matchD = qText.match(optDRegex);

if (matchA) { options[0] = matchA[1].trim(); qText = qText.replace(matchA[0], ''); } if (matchB) { options[1] = matchB[1].trim(); qText = qText.replace(matchB[0], ''); } if (matchC) { options[2] = matchC[1].trim(); qText = qText.replace(matchC[0], ''); } if (matchD) { options[3] = matchD[1].trim(); qText = qText.replace(matchD[0], ''); }

qText = qText.replace(/[\r\n]+/g, ' ').trim();

extractedQuestions.push({ type: "MCQ", title: qText, a: options[0], b: options[1], c: options[2], d: options[3], ans: "", desc: "", img: "" }); } }); renderTable(); }

function renderTable() { const tbody = document.getElementById('tableBody'); tbody.innerHTML = "";

extractedQuestions.forEach((q, index) => { const tr = document.createElement('tr'); tr.innerHTML = `

`; tbody.appendChild(tr); });

const qCount = extractedQuestions.length; const counterEl = document.getElementById('qCounter'); if(qCount === 20) { counterEl.innerHTML = `Questions: ${qCount} / 20 (Perfect Set!)`; } else { counterEl.innerHTML = `Questions: ${qCount} / 20`; } }

function downloadCSV() { if (extractedQuestions.length === 0) return;

let csvContent = "data:text/csv;charset=utf-8,\uFEFF"; csvContent += "question_type,question_title,option.a,option.b,option.c,option.d,answer,description,image\n";

for (let i = 0; i < extractedQuestions.length; i++) { let type = document.getElementById(`type_${i}`).value.replace(/"/g, '""'); let title = document.getElementById(`title_${i}`).value.replace(/"/g, '""'); let a = document.getElementById(`a_${i}`).value.replace(/"/g, '""'); let b = document.getElementById(`b_${i}`).value.replace(/"/g, '""'); let c = document.getElementById(`c_${i}`).value.replace(/"/g, '""'); let d = document.getElementById(`d_${i}`).value.replace(/"/g, '""'); let ans = document.getElementById(`ans_${i}`).value.replace(/"/g, '""'); let desc = document.getElementById(`desc_${i}`).value.replace(/"/g, '""'); let img = document.getElementById(`img_${i}`).value.replace(/"/g, '""');csvContent += `"${type}","${title}","${a}","${b}","${c}","${d}","${ans}","${desc}","${img}"\n`; }const encodedUri = encodeURI(csvContent); const link = document.createElement("a"); link.setAttribute("href", encodedUri); link.setAttribute("download", "mock_test_bulk.csv"); document.body.appendChild(link); link.click(); document.body.removeChild(link); }


Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top