web-dev-qa-db-fra.com

Extraire le texte du fichier pdf en utilisant javascript

Je veux extraire le texte du fichier pdf en utilisant uniquement Javascript côté client sans utiliser le serveur. J'ai déjà trouvé un code javascript dans le lien suivant: extraire le texte du pdf en Javascript

puis dans

http://hublog.hubmed.org/archives/001948.html

et en:

https://github.com/hubgit/hubgit.github.com/tree/master/2011/11/pdftotext

1) Je veux savoir quels sont les fichiers nécessaires à ces extractions des précédents. 2) Je ne sais pas exactement comment adapter ces codes dans une application, pas sur le web.

Toute réponse est la bienvenue. Je vous remercie.

22
Coccinelle

voici un bel exemple de la façon d'utiliser pdf.js pour extraire le texte: http://git.macropus.org/2011/11/pdftotext/example/

bien sûr, vous devez supprimer beaucoup de code pour votre objectif, mais cela devrait le faire

16
Allanon

J'ai fait une approche plus facile qui n'a pas besoin de publier des messages entre les iframes en utilisant la même bibliothèque (en utilisant la dernière version), en utilisant pdf.js .

L'exemple suivant extrait uniquement tout le texte de la première page du PDF:

/**
 * Retrieves the text of a specif page within a PDF Document obtained through pdf.js 
 * 
 * @param {Integer} pageNum Specifies the number of the page 
 * @param {PDFDocument} PDFDocumentInstance The PDF document obtained 
 **/
function getPageText(pageNum, PDFDocumentInstance) {
    // Return a Promise that is solved once the text of the page is retrieven
    return new Promise(function (resolve, reject) {
        PDFDocumentInstance.getPage(pageNum).then(function (pdfPage) {
            // The main trick to obtain the text of the PDF page, use the getTextContent method
            pdfPage.getTextContent().then(function (textContent) {
                var textItems = textContent.items;
                var finalString = "";

                // Concatenate the string of the item to the final string
                for (var i = 0; i < textItems.length; i++) {
                    var item = textItems[i];

                    finalString += item.str + " ";
                }

                // Solve promise with the text retrieven from the page
                resolve(finalString);
            });
        });
    });
}

/**
 * Extract the test from the PDF
 */

var PDF_URL  = '/path/to/example.pdf';
PDFJS.getDocument(PDF_URL).then(function (PDFDocumentInstance) {

    var totalPages = PDFDocumentInstance.pdfInfo.numPages;
    var pageNumber = 1;

    // Extract the text
    getPageText(pageNumber , PDFDocumentInstance).then(function(textPage){
        // Show the text of the page in the console
        console.log(textPage);
    });

}, function (reason) {
    // PDF loading error
    console.error(reason);
});

Lisez l'article sur cette solution ici . Comme @xarxziux l'a mentionné, la bibliothèque a changé depuis la publication de la première solution (elle ne devrait plus fonctionner avec la dernière version de pdf.js). Cela devrait fonctionner pour la plupart des cas.

10
Carlos Delgado