- Fix: error messages are sent from the worker again.
- Error handlers for unhandled promise rejections and errors in the worker.
- Object URL to the whole library code is created only once to avoid memory leaks.
- Use DIRM registry to get a page number by its id. This approach works the same for bundled and indirect documents.
- More robust memory management for document creation (usage of
WebAssembly.Memory
with itsgrow()
method instead of manualArrayBuffer
expansion). 'use strict';
in the Web Worker (typo correction).- Returned to the old behaviour: wait for the completion of a forgotten task, before sending the next to the Web Worker.
- Feature: bundle indirect djvu documents.
- Removed old redundant DjVuWorker's methods duplicating "doc" proxy API.
- Now callbacks can be passed to the DjVuWorker.
- Minor improvements.
- Use standard TextDecoder API to handle ill-formed utf-8 arrays.
- Significant reduction of memory consumption in IWDecoder (LazyBlock).
- Automatic reset of temporary IW structures after the decoding phase, if the image is big.
- Fixed a bug due to which an empty DJVI chunk caused an error.
- Fixed an error, which took place when there is no location.origin (when a web page is opened directly in a browser).
- Wrapped some loop's bodies into functions to avoid code deoptimizations in Chrome in some cases.
- png.js was integrated into djvu.js to create png files (and Object URLs to them) of the pages inside a worker. It's required for the continuous scroll mode, since a png file is much less than a raw ImageData object.
- Fixed a bug having taken place when there were more than 1 block in bzz encoded data.
- Now XHR is used instead of fetch(), since the latter can't load local files (i.e. file:/// urls).
- Fixed a bug. Now empty edges are removed for all symbols added to the dict.
- Fixed a bug when baseline (y coord) was computed incorrectly.
- New method for getting quantity of pages.
- Correct processing of page urls with leading zeros (like "#002").
- The support of indirect djvu files.
- Bug fixes.
- Rotation flags are processed now. A image of page is rotated by default if required.
- Empty pages are processed correctly.
- DjVuWorker is created from the Data URL which is generated automatically, so there is no need in explicit script URL.
- Additional method run() for the DjVuWorkerTask (the proxy object which is return by the "doc" property of the worker).
- Utils.loadFile() is deprecated now.
- The whole script is available through the DjVu.DjVuScript() method, which is added as a wrapper in the build process.
- TXT* chunks are decoded completely - text zones are decoded.
- Normalized text zones for the text layer of page.
- New universal Proxy-based DjVuWorker API, allowing to automatically use most of methods of DjVuDocument.
- UTF-8 ids of pages and dictionaries are supported.
- JB2 codec performance optimizations (more efficient memory access)
- Old files with INFO chunks less than 10 bytes are supported.
- A specific error for corrupted files.
- A table of contents can be gotten.
- A page number may be gotten by a url.
- All worker tasks-promises can be cancelled now.
- A task is posted to the worker only after the previous one is fulfilled.
- Unified style of DjVuErrors, which are errors that are thrown manually, when a file is corrupted, there is no requested page and so on.
- DjVuErrors are rather simple objects that may be copied between workers.
- UTF-8 strings are decoded correctly now.
- IW44, BZZ and ZP codecs are fully implemented with some constraints in case of BZZ codec.
- JB2 codec is implemented only for decoding.
- BGjp, FGjp, Smmr are not supported at all.
- ANTa, ANTz, NAVM, FORM:THUM and TH44 are not supported, but there are dummies for them, so they are processed somehow.
- Support of TXTz and TXTa is implemented partly, only pure text is decoded.
- The library can split a djvu file, render pages, generate metadata of djvu files, and create a document from a set of images (using IW44 codec).