From 92a43373870fdafb4e41bfe44d581b23cefd67ef Mon Sep 17 00:00:00 2001 From: Johannes Zillmann Date: Tue, 14 Feb 2017 20:28:01 +0100 Subject: [PATCH] Add font info to pdf page view --- src/javascript/components/LoadingView.jsx | 21 +++++++++++++++---- .../components/debug/PdfPageView.jsx | 9 ++++++++ src/javascript/models/TextItem.jsx | 3 +++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/javascript/components/LoadingView.jsx b/src/javascript/components/LoadingView.jsx index 89aad83..8cd4fe8 100644 --- a/src/javascript/components/LoadingView.jsx +++ b/src/javascript/components/LoadingView.jsx @@ -55,6 +55,17 @@ export default class LoadingView extends React.Component { pdfDocument.getPage(j).then(function(page) { var scale = 1.0; var viewport = page.getViewport(scale); + + // pdfDocument.getMetadata().then(function(data) { + // console.debug(data); + // }); + // page.getOperatorList().then(function(opList) { + // console.debug(opList); + // // var svgGfx = new svgLib.SVGGraphics(page.commonObjs, page.objs); + // // return svgGfx.getSVG(opList, viewport).then(function (svg) { + // // container.appendChild(svg); + // // }); + // }); page.getTextContent().then(function(textContent) { const textItems = textContent.items.map(function(item) { const tx = PDFJS.Util.transform( // eslint-disable-line no-undef @@ -64,12 +75,17 @@ export default class LoadingView extends React.Component { const fontHeight = Math.sqrt((tx[2] * tx[2]) + (tx[3] * tx[3])); const dividedHeight = item.height / fontHeight; + + const style = textContent.styles[item.fontName]; return new TextItem({ x: item.transform[4], y: item.transform[5], width: item.width, height: dividedHeight <= 1 ? item.height : dividedHeight, - text: item.str + text: item.str, + font: item.fontName, + fontAscent: style.ascent, + fontDescent: style.descent }); }); anouncePageParsedFunction(page.pageIndex, textItems); @@ -79,9 +95,6 @@ export default class LoadingView extends React.Component { }); } - - - render() { const {parsedPages, pdfPages} = this.state; var percentDone = 0; diff --git a/src/javascript/components/debug/PdfPageView.jsx b/src/javascript/components/debug/PdfPageView.jsx index b387a23..03a003a 100644 --- a/src/javascript/components/debug/PdfPageView.jsx +++ b/src/javascript/components/debug/PdfPageView.jsx @@ -41,6 +41,10 @@ export default class PdfPageView extends React.Component { Height + + Font +
(asc/desc) + @@ -75,6 +79,11 @@ export default class PdfPageView extends React.Component { { textItem.height } + + { textItem.font } +
+ { textItem.fontAscent + ' / ' + textItem.fontDescent } + ) } diff --git a/src/javascript/models/TextItem.jsx b/src/javascript/models/TextItem.jsx index 1c5400b..f677f2a 100644 --- a/src/javascript/models/TextItem.jsx +++ b/src/javascript/models/TextItem.jsx @@ -7,6 +7,9 @@ export default class TextItem { this.width = options.width; this.height = options.height; this.text = options.text; + this.font = options.font; + this.fontAscent = options.fontAscent; + this.fontDescent = options.fontDescent; this.annotation = options.annotation; this.markdownElement = options.markdownElement; }