mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-26 01:58:06 +02:00
[api-minor] Add a parameter to PDFPageProxy_getTextContent
that controls whether PartialEvaluator_getTextContent
will attempt to combine same line text items
From the discussion in issue 7445, it seems that there may be cases where an API consumer would want to get the text content as is, without combined text items.
This commit is contained in:
parent
9228a04061
commit
f297e4d17c
8 changed files with 42 additions and 27 deletions
|
@ -1110,7 +1110,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
getTextContent:
|
||||
function PartialEvaluator_getTextContent(stream, task, resources,
|
||||
stateManager,
|
||||
normalizeWhitespace) {
|
||||
normalizeWhitespace,
|
||||
combineTextItems) {
|
||||
|
||||
stateManager = (stateManager || new StateManager(new TextState()));
|
||||
|
||||
|
@ -1421,7 +1422,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
var isSameTextLine = !textState.font ? false :
|
||||
((textState.font.vertical ? args[0] : args[1]) === 0);
|
||||
advance = args[0] - args[1];
|
||||
if (isSameTextLine && textContentItem.initialized &&
|
||||
if (combineTextItems &&
|
||||
isSameTextLine && textContentItem.initialized &&
|
||||
advance > 0 &&
|
||||
advance <= textContentItem.fakeMultiSpaceMax) {
|
||||
textState.translateTextLineMatrix(args[0], args[1]);
|
||||
|
@ -1453,7 +1455,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
// Optimization to treat same line movement as advance.
|
||||
advance = textState.calcTextLineMatrixAdvance(
|
||||
args[0], args[1], args[2], args[3], args[4], args[5]);
|
||||
if (advance !== null && textContentItem.initialized &&
|
||||
if (combineTextItems &&
|
||||
advance !== null && textContentItem.initialized &&
|
||||
advance.value > 0 &&
|
||||
advance.value <= textContentItem.fakeMultiSpaceMax) {
|
||||
textState.translateTextLineMatrix(advance.width,
|
||||
|
@ -1594,7 +1597,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
|
||||
next(self.getTextContent(xobj, task,
|
||||
xobj.dict.get('Resources') || resources, stateManager,
|
||||
normalizeWhitespace).then(function (formTextContent) {
|
||||
normalizeWhitespace, combineTextItems).then(
|
||||
function (formTextContent) {
|
||||
Util.appendToArray(textContent.items, formTextContent.items);
|
||||
Util.extendObj(textContent.styles, formTextContent.styles);
|
||||
stateManager.restore();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue