mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-29 07:37:57 +02:00
XFA - Move the fake HTML representation of XFA from the worker to the main thread
- the only goal of this patch is to be able to get synchronously the fake html when printing from firefox: - in order to print we need to inject some html in beforeprint callback but we cannot block in waiting for all the pages. - from a memory point of view: it doesn't change anything since the fake HTML is deleted in the worker; - this way we don't break any assumptions.
This commit is contained in:
parent
9478d2f064
commit
45c3f00a27
5 changed files with 50 additions and 32 deletions
|
@ -22,18 +22,35 @@ class XFAFactory {
|
|||
try {
|
||||
this.root = new XFAParser().parse(XFAFactory._createDocument(data));
|
||||
this.form = new Binder(this.root).bind();
|
||||
this.pages = this.form[$toHTML]();
|
||||
this._createPages();
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
getPage(pageIndex) {
|
||||
return this.pages.children[pageIndex];
|
||||
_createPages() {
|
||||
this.pages = this.form[$toHTML]();
|
||||
this.dims = this.pages.children.map(c => {
|
||||
const { width, height } = c.attributes.style;
|
||||
return [0, 0, parseInt(width), parseInt(height)];
|
||||
});
|
||||
}
|
||||
|
||||
getBoundingBox(pageIndex) {
|
||||
return this.dims[pageIndex];
|
||||
}
|
||||
|
||||
get numberPages() {
|
||||
return this.pages.children.length;
|
||||
return this.dims.length;
|
||||
}
|
||||
|
||||
getPages() {
|
||||
if (!this.pages) {
|
||||
this._createPages();
|
||||
}
|
||||
const pages = this.pages;
|
||||
this.pages = null;
|
||||
return pages;
|
||||
}
|
||||
|
||||
static _createDocument(data) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue