it-swarm.com.de

Extrahieren Sie Text aus der PDF-Datei mit Javascript

Ich möchte Text aus der PDF-Datei nur mit Javascript auf der Clientseite extrahieren, ohne den Server zu verwenden. Ich habe bereits einen Javascript-Code unter folgendem Link gefunden: Text aus dem PDF in Javascript extrahieren

und dann in

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

und in:

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

1) Ich möchte bitte wissen, welche Dateien für diese Extraktion aus den vorherigen erforderlich sind. 2) Ich weiß nicht genau, wie ich diese Codes in einer Anwendung anpassen soll, nicht im Web.

Jede Antwort ist willkommen. Danke dir.

30
Coccinelle

hier ist ein schönes Beispiel für die Verwendung von pdf.js zum Extrahieren des Textes: http://git.macropus.org/2011/11/pdftotext/example/

natürlich müssen Sie viel Code für Ihren Zweck entfernen, aber es sollte es tun

16
Allanon

Ich habe einen einfacheren Ansatz gewählt, bei dem keine Nachrichten zwischen Iframes mit derselben Bibliothek (mit der neuesten Version), mit pdf.js veröffentlicht werden müssen.

Das folgende Beispiel würde den gesamten Text nur von der ersten Seite des PDF extrahieren:

/**
 * 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);
});

Lesen Sie hier den Artikel über diese Lösung . Wie @xarxziux erwähnte, hat sich die Bibliothek geändert, seit die erste Lösung veröffentlicht wurde (sie sollte nicht mehr mit der neuesten Version von pdf.js funktionieren). Dies sollte in den meisten Fällen funktionieren.

10
Carlos Delgado