Creates IPDFTextLayerFactory interface

This commit is contained in:
Yury Delendik 2014-09-28 09:35:33 -05:00
parent f68678086d
commit 7663942ee5
3 changed files with 29 additions and 11 deletions

View File

@ -83,3 +83,17 @@ ILastScrollSource.prototype = {
*/
get lastScroll() {},
};
/**
* @interface
*/
function IPDFTextLayerFactory() {}
IPDFTextLayerFactory.prototype = {
/**
* @param {HTMLDivElement} textLayerDiv
* @param {number} pageIndex
* @param {PageViewport} viewport
* @returns {TextLayerBuilder}
*/
createTextLayerBuilder: function (textLayerDiv, pageIndex, viewport) {}
};

View File

@ -29,7 +29,7 @@
* @property {PDFRenderingQueue} renderingQueue - The rendering queue object.
* @property {Cache} cache - The page cache.
* @property {PDFPageSource} pageSource
* @property {PDFViewer} viewer
* @property {IPDFTextLayerFactory} textLayerFactory
*/
/**
@ -50,7 +50,7 @@ var PDFPageView = (function PDFPageViewClosure() {
var renderingQueue = options.renderingQueue;
var cache = options.cache;
var pageSource = options.pageSource;
var viewer = options.viewer;
var textLayerFactory = options.textLayerFactory;
this.id = id;
this.renderingId = 'page' + id;
@ -65,7 +65,7 @@ var PDFPageView = (function PDFPageViewClosure() {
this.renderingQueue = renderingQueue;
this.cache = cache;
this.pageSource = pageSource;
this.viewer = viewer;
this.textLayerFactory = textLayerFactory;
this.renderingState = RenderingStates.INITIAL;
this.resume = null;
@ -454,7 +454,7 @@ var PDFPageView = (function PDFPageViewClosure() {
var textLayerDiv = null;
var textLayer = null;
if (!PDFJS.disableTextLayer) {
if (this.textLayerFactory) {
textLayerDiv = document.createElement('div');
textLayerDiv.className = 'textLayer';
textLayerDiv.style.width = canvas.style.width;
@ -466,9 +466,9 @@ var PDFPageView = (function PDFPageViewClosure() {
div.appendChild(textLayerDiv);
}
textLayer = this.viewer.createTextLayerBuilder(textLayerDiv,
this.id - 1,
this.viewport);
textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv,
this.id - 1,
this.viewport);
}
this.textLayer = textLayer;

View File

@ -236,6 +236,10 @@ var PDFViewer = (function pdfViewer() {
var viewport = pdfPage.getViewport(scale * CSS_UNITS);
for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) {
var pageSource = new PDFPageSource(pdfDocument, pageNum);
var textLayerFactory = null;
if (!PDFJS.disableTextLayer) {
textLayerFactory = this;
}
var pageView = new PDFPageView({
container: this.viewer,
id: pageNum,
@ -245,7 +249,7 @@ var PDFViewer = (function pdfViewer() {
renderingQueue: this.renderingQueue,
cache: this.cache,
pageSource: pageSource,
viewer: this
textLayerFactory: textLayerFactory
});
bindOnAfterDraw(pageView);
this.pages.push(pageView);
@ -629,9 +633,9 @@ var PDFViewer = (function pdfViewer() {
},
/**
* @param textLayerDiv {HTMLDivElement}
* @param pageIndex {number}
* @param viewport {PageViewport}
* @param {HTMLDivElement} textLayerDiv
* @param {number} pageIndex
* @param {PageViewport} viewport
* @returns {TextLayerBuilder}
*/
createTextLayerBuilder: function (textLayerDiv, pageIndex, viewport) {