我想在客户端仅使用Javascript从pdf文件中提取文本,而不使用服务器。我已经在以下链接中找到了一个javascript代码:extract text from pdf in Javascript
然后在
http://hublog.hubmed.org/archives/001948.html
并在:
https://github.com/hubgit/hubgit.github.com/tree/master/2011/11/pdftotext
1)我想知道从以前的文件中提取这些文件所需的文件是什么。 2)我不确切知道如何在应用程序中修改这些代码,而不是在网络中。
欢迎任何回答。谢谢。
答案 0 :(得分:13)
这是一个很好的例子,说明如何使用pdf.js来提取文本: http://git.macropus.org/2011/11/pdftotext/example/
当然,您必须为您的目的删除大量代码,但它应该这样做
答案 1 :(得分:7)
我做了一个更简单的方法,不需要使用相同的库(使用最新版本)using pdf.js在iframe之间发布消息。
以下示例仅从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);
});
Read the article about this solution here。正如@xarxziux所提到的,自第一个解决方案发布以来,库已经发生了变化(它不再适用于最新版本的pdf.js)。这适用于大多数情况。