Estoy tratando de convertir un archivo PDF a texto.
Cuando abro un archivo, como file:///D:/MyFiles/File.pdf el HTML generado no contiene el contenido del documento, sino que es solo un <embed> .
¿Es posible leer el contenido del PDF sin que esté alojado en algún lugar (con JavaScript o alguna API de Chrome)? ¿Hay alguna alternativa?
PDF.js parece una buena opción para lo que intentas hacer. Esta es una pregunta similar: Cómo extraer correctamente texto de un pdf usando pdf.js La pregunta fue respondida con el siguiente código:
function gettext(pdfUrl){ var pdf = pdfjsLib.getDocument(pdfUrl); return pdf.then(function(pdf) { // get all pages text var maxPages = pdf.pdfInfo.numPages; var countPromises = []; // collecting all page promises for (var j = 1; j <= maxPages; j++) { var page = pdf.getPage(j); var txt = ""; countPromises.push(page.then(function(page) { // add page promise var textContent = page.getTextContent(); return textContent.then(function(text){ // return content promise return text.items.map(function (s) { return s.str; }).join(''); // value page text }); })); } // Wait for all pages and join text return Promise.all(countPromises).then(function (texts) { return texts.join(''); }); }); } // waiting on gettext to finish completion, or error gettext("https://cdn.mozilla.net/pdfjs/tracemonkey.pdf").then(function (text) { alert('parse ' + text); }, function (reason) { console.error(reason); });HTML:
<script src="https://npmcdn.com/pdfjs-dist/build/pdf.js"></script>