|
|
|
@ -20,8 +20,8 @@ if (typeof PDFJS === 'undefined') {
@@ -20,8 +20,8 @@ if (typeof PDFJS === 'undefined') {
|
|
|
|
|
(typeof window !== 'undefined' ? window : this).PDFJS = {}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PDFJS.version = '1.3.32'; |
|
|
|
|
PDFJS.build = 'c2dfe9e'; |
|
|
|
|
PDFJS.version = '1.3.34'; |
|
|
|
|
PDFJS.build = '0819d71'; |
|
|
|
|
|
|
|
|
|
(function pdfjsWrapper() { |
|
|
|
|
// Use strict in our context only - users might not want it
|
|
|
|
@ -2354,6 +2354,14 @@ var PDFDocumentProxy = (function PDFDocumentProxyClosure() {
@@ -2354,6 +2354,14 @@ var PDFDocumentProxy = (function PDFDocumentProxyClosure() {
|
|
|
|
|
return PDFDocumentProxy; |
|
|
|
|
})(); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Page getTextContent parameters. |
|
|
|
|
* |
|
|
|
|
* @typedef {Object} getTextContentParameters |
|
|
|
|
* @param {boolean} normalizeWhitespace - replaces all occurrences of |
|
|
|
|
* whitespace with standard spaces (0x20). The default value is `false`. |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Page text content. |
|
|
|
|
* |
|
|
|
@ -2632,12 +2640,16 @@ var PDFPageProxy = (function PDFPageProxyClosure() {
@@ -2632,12 +2640,16 @@ var PDFPageProxy = (function PDFPageProxyClosure() {
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param {getTextContentParameters} params - getTextContent parameters. |
|
|
|
|
* @return {Promise} That is resolved a {@link TextContent} |
|
|
|
|
* object that represent the page text content. |
|
|
|
|
*/ |
|
|
|
|
getTextContent: function PDFPageProxy_getTextContent() { |
|
|
|
|
getTextContent: function PDFPageProxy_getTextContent(params) { |
|
|
|
|
var normalizeWhitespace = (params && params.normalizeWhitespace) || false; |
|
|
|
|
|
|
|
|
|
return this.transport.messageHandler.sendWithPromise('GetTextContent', { |
|
|
|
|
pageIndex: this.pageNumber - 1 |
|
|
|
|
pageIndex: this.pageNumber - 1, |
|
|
|
|
normalizeWhitespace: normalizeWhitespace, |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
@ -9909,7 +9921,8 @@ var Page = (function PageClosure() {
@@ -9909,7 +9921,8 @@ var Page = (function PageClosure() {
|
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
extractTextContent: function Page_extractTextContent(task) { |
|
|
|
|
extractTextContent: function Page_extractTextContent(task, |
|
|
|
|
normalizeWhitespace) { |
|
|
|
|
var handler = { |
|
|
|
|
on: function nullHandlerOn() {}, |
|
|
|
|
send: function nullHandlerSend() {} |
|
|
|
@ -9939,7 +9952,9 @@ var Page = (function PageClosure() {
@@ -9939,7 +9952,9 @@ var Page = (function PageClosure() {
|
|
|
|
|
|
|
|
|
|
return partialEvaluator.getTextContent(contentStream, |
|
|
|
|
task, |
|
|
|
|
self.resources); |
|
|
|
|
self.resources, |
|
|
|
|
/* stateManager = */ null, |
|
|
|
|
normalizeWhitespace); |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
@ -18842,12 +18857,15 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
@@ -18842,12 +18857,15 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
getTextContent: function PartialEvaluator_getTextContent(stream, task, |
|
|
|
|
resources, |
|
|
|
|
stateManager) { |
|
|
|
|
getTextContent: |
|
|
|
|
function PartialEvaluator_getTextContent(stream, task, resources, |
|
|
|
|
stateManager, |
|
|
|
|
normalizeWhitespace) { |
|
|
|
|
|
|
|
|
|
stateManager = (stateManager || new StateManager(new TextState())); |
|
|
|
|
|
|
|
|
|
var WhitespaceRegexp = /\s/g; |
|
|
|
|
|
|
|
|
|
var textContent = { |
|
|
|
|
items: [], |
|
|
|
|
styles: Object.create(null) |
|
|
|
@ -18961,11 +18979,23 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
@@ -18961,11 +18979,23 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|
|
|
|
return textContentItem; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function replaceWhitespace(str) { |
|
|
|
|
// Replaces all whitespaces with standard spaces (0x20), to avoid
|
|
|
|
|
// alignment issues between the textLayer and the canvas if the text
|
|
|
|
|
// contains e.g. tabs (fixes issue6612.pdf).
|
|
|
|
|
var i = 0, ii = str.length, code; |
|
|
|
|
while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7F) { |
|
|
|
|
i++; |
|
|
|
|
} |
|
|
|
|
return (i < ii ? str.replace(WhitespaceRegexp, ' ') : str); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function runBidiTransform(textChunk) { |
|
|
|
|
var str = textChunk.str.join(''); |
|
|
|
|
var bidiResult = PDFJS.bidi(str, -1, textChunk.vertical); |
|
|
|
|
return { |
|
|
|
|
str: bidiResult.str, |
|
|
|
|
str: (normalizeWhitespace ? replaceWhitespace(bidiResult.str) : |
|
|
|
|
bidiResult.str), |
|
|
|
|
dir: bidiResult.dir, |
|
|
|
|
width: textChunk.width, |
|
|
|
|
height: textChunk.height, |
|
|
|
@ -19286,8 +19316,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
@@ -19286,8 +19316,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return self.getTextContent(xobj, task, |
|
|
|
|
xobj.dict.get('Resources') || resources, stateManager). |
|
|
|
|
then(function (formTextContent) { |
|
|
|
|
xobj.dict.get('Resources') || resources, stateManager, |
|
|
|
|
normalizeWhitespace).then(function (formTextContent) { |
|
|
|
|
Util.appendToArray(textContent.items, formTextContent.items); |
|
|
|
|
Util.extendObj(textContent.styles, formTextContent.styles); |
|
|
|
|
stateManager.restore(); |
|
|
|
@ -41996,12 +42026,14 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
@@ -41996,12 +42026,14 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
|
|
|
|
|
|
|
|
|
|
handler.on('GetTextContent', function wphExtractText(data) { |
|
|
|
|
var pageIndex = data.pageIndex; |
|
|
|
|
var normalizeWhitespace = data.normalizeWhitespace; |
|
|
|
|
return pdfManager.getPage(pageIndex).then(function(page) { |
|
|
|
|
var task = new WorkerTask('GetTextContent: page ' + pageIndex); |
|
|
|
|
startWorkerTask(task); |
|
|
|
|
var pageNum = pageIndex + 1; |
|
|
|
|
var start = Date.now(); |
|
|
|
|
return page.extractTextContent(task).then(function(textContent) { |
|
|
|
|
return page.extractTextContent(task, normalizeWhitespace).then( |
|
|
|
|
function(textContent) { |
|
|
|
|
finishWorkerTask(task); |
|
|
|
|
info('text indexing: page=' + pageNum + ' - time=' + |
|
|
|
|
(Date.now() - start) + 'ms'); |
|
|
|
|