Refactors SVG api
This commit is contained in:
parent
36eac09171
commit
bc574aa629
@ -65,8 +65,8 @@ PDFJS.getDocument(data).then(function (doc) {
|
||||
|
||||
return page.getOperatorList().then(function (opList) {
|
||||
var svgGfx = new PDFJS.SVGGraphics(page.commonObjs, page.objs);
|
||||
return svgGfx.loadDependencies(opList).then(function (values) {
|
||||
var svgDump = svgGfx.getSVG(viewport, pageNum, opList).toString();
|
||||
return svgGfx.getSVG(opList, viewport).then(function (svg) {
|
||||
var svgDump = svg.toString();
|
||||
writeToFile(svgDump, pageNum);
|
||||
});
|
||||
});
|
||||
|
@ -48,8 +48,8 @@ PDFJS.getDocument(url).then(function(pdf) {
|
||||
|
||||
return page.getOperatorList().then(function (opList) {
|
||||
var svgGfx = new PDFJS.SVGGraphics(page.commonObjs, page.objs);
|
||||
return svgGfx.loadDependencies(opList).then(function (values) {
|
||||
container.appendChild(svgGfx.getSVG(viewport, pageNum, opList));
|
||||
return svgGfx.getSVG(opList, viewport).then(function (svg) {
|
||||
container.appendChild(svg);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -19,16 +19,6 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
function createScratchSVG(width, height) {
|
||||
var NS = 'http://www.w3.org/2000/svg';
|
||||
var svg = document.createElementNS(NS, 'svg:svg');
|
||||
svg.setAttributeNS(null, 'version', '1.1');
|
||||
svg.setAttributeNS(null, 'width', width + 'px');
|
||||
svg.setAttributeNS(null, 'height', height + 'px');
|
||||
svg.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height);
|
||||
return svg;
|
||||
}
|
||||
|
||||
var convertImgDataToPng = (function convertImgDataToPngClosure() {
|
||||
var PNG_HEADER =
|
||||
new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);
|
||||
@ -281,6 +271,16 @@ var SVGExtraState = (function SVGExtraStateClosure() {
|
||||
})();
|
||||
|
||||
var SVGGraphics = (function SVGGraphicsClosure() {
|
||||
function createScratchSVG(width, height) {
|
||||
var NS = 'http://www.w3.org/2000/svg';
|
||||
var svg = document.createElementNS(NS, 'svg:svg');
|
||||
svg.setAttributeNS(null, 'version', '1.1');
|
||||
svg.setAttributeNS(null, 'width', width + 'px');
|
||||
svg.setAttributeNS(null, 'height', height + 'px');
|
||||
svg.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height);
|
||||
return svg;
|
||||
}
|
||||
|
||||
function opListToTree(opList) {
|
||||
var opTree = [];
|
||||
var tmp = [];
|
||||
@ -431,21 +431,24 @@ var SVGGraphics = (function SVGGraphicsClosure() {
|
||||
this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
|
||||
},
|
||||
|
||||
getSVG: function SVGGraphics_getSVG(viewport, pageNum, operatorList) {
|
||||
getSVG: function SVGGraphics_getSVG(operatorList, viewport) {
|
||||
this.svg = createScratchSVG(viewport.width, viewport.height);
|
||||
this.viewport = viewport;
|
||||
this.transformMatrix = IDENTITY_MATRIX;
|
||||
this.pgrp = document.createElementNS(NS, 'svg:g'); // Parent group
|
||||
this.pgrp.setAttributeNS(null, 'transform', pm(viewport.transform));
|
||||
this.tgrp = document.createElementNS(NS, 'svg:g'); // Transform group
|
||||
this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
|
||||
this.defs = document.createElementNS(NS, 'svg:defs');
|
||||
this.pgrp.appendChild(this.defs);
|
||||
this.pgrp.appendChild(this.tgrp);
|
||||
this.svg.appendChild(this.pgrp);
|
||||
var opTree = this.convertOpList(operatorList);
|
||||
this.executeOpTree(opTree);
|
||||
return this.svg;
|
||||
|
||||
return this.loadDependencies(operatorList).then(function () {
|
||||
this.transformMatrix = IDENTITY_MATRIX;
|
||||
this.pgrp = document.createElementNS(NS, 'svg:g'); // Parent group
|
||||
this.pgrp.setAttributeNS(null, 'transform', pm(viewport.transform));
|
||||
this.tgrp = document.createElementNS(NS, 'svg:g'); // Transform group
|
||||
this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
|
||||
this.defs = document.createElementNS(NS, 'svg:defs');
|
||||
this.pgrp.appendChild(this.defs);
|
||||
this.pgrp.appendChild(this.tgrp);
|
||||
this.svg.appendChild(this.pgrp);
|
||||
var opTree = this.convertOpList(operatorList);
|
||||
this.executeOpTree(opTree);
|
||||
return this.svg;
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
convertOpList: function SVGGraphics_convertOpList(operatorList) {
|
||||
|
Loading…
Reference in New Issue
Block a user